如何告诉我的程序如何改变要读取的元素数量scanf
?我希望它读取字符串中的每个字符,字符串的长度可能从一个字符到一百个字符不等。我知道我可以做scanf("%c%c%c%c...")
一百次,但有没有更简单的方法可以做到这一点?
问问题
175 次
2 回答
4
当然,使用fgets()
适当大小的缓冲区:
char buf[LINE_MAX];
if (fgets(buf, sizeof buf, stdin) != NULL) {
// input is now in `buf'
}
如果您真的不能使用数组,请调用getchar()
直到找到换行符:
int sum = 0;
int ch;
while ((ch = getchar()) != EOF && ch != '\n') {
sum += ch;
}
(这已经做了你想要的,即它总结了用户输入的字符串的字符代码。)
于 2013-11-06T07:18:24.653 回答
1
你可以这样做
char A[105];
scanf("%s", A);
printf("%s\n", A);
这样,您可以输入各种长度的字符串。如果输入“abc”,则结果为“abc”
于 2013-11-06T07:16:11.967 回答