為什麼 C 程式語言的編譯器不在整數後讀取字串?
問題
在 C 程式設計中,編譯器為什麼在整數後不讀取字串?我們如何解決這個問題?
解決方案
當你輸入整數後按回車讀取下一個值時,編譯器將空儲存在字串的首個字元中並且字串輸入結束,因為每次讀取空字元時,scanf 都會終止。
如何解決?
當我們在 int 或 float 後試圖讀取字串或字元時,我們應該讀取輸入緩衝區中存在的臨時字元。
以下是無錯誤的程式 -
示例
#include <stdio.h>
struct student{
char name[10];
int roll;
char temp;
} s;
int main(){
printf("Enter information of students:
");
printf("
Enter roll number: ");
scanf("%d", &s.roll);
scanf("%c",&s.temp); //read temporary character
printf("
Enter name: ");
gets(s.name);
printf("
Displaying Information of students:
");
printf("
Roll number: %d\t", s.roll);
printf("
name:%s\t", s.name);
return 0;
}輸出
Enter information of students: Enter roll number: 3 Enter name: tutorialspoint Displaying Information of students: Roll number: 29806 name:tutorialspoint
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP