繁体   English   中英

在C中输入带空格的字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM