① c語言當用戶要求輸入的字元串中含有空格時,應使用的輸入函數是什麼啊
用gets()函數;gets從標准輸入設備讀字元串函數,其可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。
功能
從stdin流中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為『 』空字元,並由此來結束字元串。
返回值
讀入成功,返回與參數buffer相同的指針;讀入過程中遇到EOF(End-of-File)或發生錯誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數檢查是發生錯誤還是遇到EOF。
(1)c語言輸入函數經典例子擴展閱讀:
gets()函數用法:
示例
1、C:
#include <stdio.h> //這個頭文件包含gets()函數,這個函數在ISO/IEC 9899 2011(C11)標准中被移除
int main(void)
{
char str1; //不要char*p,然後gets(p),這是錯誤的,因為p沒有指向有效的內存,它可能指向任何非法地址//地方的未知大小的內存塊,這樣以來,就可能修改了不屬於本程序的內存的內容
gets(str1);
printf("%s ", str1);
return 0;
}
#include <stdio.h>//gets_s()用法
#define CH 20
int main(void)
{
char ch[CH];
printf("請輸入你的名字: ");
gets_s(ch,CH); //這里不能用gets_s(ch);
printf("這是你的名字:%s ", ch);
return 0;
}
2、C++:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char str[100];
gets(str);
cout<<str<<endl;
return 0;
}
gets()函數用來從標准輸入設備(鍵盤)讀取字元串直到換行符結束,但換行符會被丟棄,然後在末尾添加'