好吧,这是一个基本问题,但我似乎很困惑。
#include<stdio.h>
int main()
{
char a[100];
printf("Enter a string\n");
scanf("%s",a);
}
基本上以上就是我想要实现的。 如果我输入一个字符串
James Bond
然后我希望将其存储在数组 a 中。 但问题是因为中间存在一个空格,只存储了 James 单词。 那么我该如何解决这个问题。
更新
在下面给出的答复之后,我明白 fgets() 将是一个更好的选择。我想知道 fgets 的内部工作原理,因为它为什么能够用空格存储字符串,而 scanf 不能这样做。
最佳答案
这是您需要的吗?
- FreeBSD:http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/stdio/fgets.c?rev=1.14.14.1;content-type=text%2Fplain
- 开放实现:https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7425&lngWId=3
- OWP(死)http://www.koders.com/c/fid042417FA231704B84308A66E1B82EADEDAB22051.aspx
- ReactOS http://www.koders.com/c/fidEB3507945463053CEFCD518EA0CDFF9EB78E24C9.aspx?s=fgets.c#L1
所有实现都会扫描输入文件(或流),直到它到达\n 或 EOF,或者 maxSize
参数被命中...
关于c - fgets 内部是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6436378/