[英]Inputting a string with spaces in C
我希望程序提示用户要写多少个句子,然后输入这些句子。 但是,当我尝试输入句子时,会不断出现错误。 我尝试使用几种不同的功能,但所有功能都产生了某种错误。 例如,现在我正在尝试使用fgets(),在输入第一句话之后,它给我带来了句段错误。 有人可以告诉我什么是用空格输入字符串的最佳方法以及如何解决我的问题吗?
int n;
char str[n][80];
printf("Enter number of lines: ");
scanf("%d", &n);
printf("Enter a sentecne: ");
for(int i = 0; i < n; i++){
fgets(str[i], 80, stdin);
printf("%s", str[i]);
}
您可以在初始化n
之前定义数组str
。 这意味着n
将具有不确定的值(看似随机的)。
在定义str
之前将n
的输入移动到。
您可以使用读取功能http://man7.org/linux/man-pages/man2/read.2.html
读取文件描述符0(标准输入),用于存储数据的char * buffer和要读取的size_t大小
您的代码中有几个问题
int n; // must have a value
int n = 10; // example, here your variable is initialized
您也不检查scanf的返回值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.