c++ 中如何输入空行

来源:百度知道 编辑:UC知道 时间:2024/06/06 23:31:12
我的这段程序是这样的:

for(i=0;i<n;i++){

scanf("%s",a);//输入字符串

if(i<n-1){
scanf("%c",&blank);}//我试图这样输入一行空行,可是程序直接不执行了,这是为什么啊
测试数据中n=2,
可是我的blank是char型的啊,而且不是空格,是空行;我的这段程序为什么不对呢

空行 不就是一组空格的字符串吗? 要用字符串只能是char i[j] 字符串也是一个数组..! scanf是不支持空格的.

scanf()不支持空格...它遇到空格就会认为程序输入结束...想要输入空格键就要用 gets(a);手动按空格 直到再按回车..!

for(i=0;i<n;i++){

gets(a[i]);//输入字符串

空行 就是一组空格的字符串。canf是不支持空格的。它遇到空格就会认为程序输入结束。想要输入空格键就要用 gets(a);手动按空格 直到再按回车。
1、gets函数:
原型:char * gets(char * buffer);
功能:从stdin流中读取字符串,直至读到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为 \0 空字符,并以此结束字符串;
说明:当使用unicode宽字符文本时,请使用宽字符版本函数 _getws()。gets函数可以无限读取,不会判断上限,所以使用时应确保buffer的空间足够大,以便在执行读取操作时不发生溢出。gets函数在C11标准中被移除,改为更加安全的gets_s函数;
头文件:stdio.h;
返回值:若读入成功,返回与参数buffer相同的字符指针。若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。
2、例程:
#include <stdio.h>
int main(){
char buffer[5];//定义缓存字符数组buffer
gets(buffer);//用gets函数从stdin流中读入字符串,因为buffer长度是5,输入不能超过4个字符
printf("%s",buffer);//在stdout流中输出读入的字符串
return 0;
}

明确一下概念吧?....什么叫输入空行。

<