嗯,我知道很多类似的问题,但是,我愿意澄清是否需要,因为我的问题可能不是很清楚。 所以它是这样的,说我想在C中获得一个空格分隔的名称字符串。 或者一般来说,我想了解scanf为什么它在CI中的文件I/O想要善于处理字符串时表现得如此奇怪调试这样的东西。 我应该能够打印完整的字符串,只要它不超过我在C中的字符数组限制。 我在这个主题上搜索了很多,但是如果可以打印出C中stdin的内部表示,某种方式。 例如: -Scanf字符串空间问题C
#include<stdio.h>
#include<stdlib.h>
int main() {
char name[100]; // accept 100 chars
printf("\nEnter your name: "); // This writes to stream stdout
scanf("%100s",name); // Specify char limit in scanf
while(getchar()!='\n'); // Until user presses 'Enter' else scan 100 chars
return 0;
}
例如,假设I型,(空间)苹果公司(按Enter键) 我能以某种方式打印出内部表示,这是我觉得有点 类似(ASCII空间)(” ''''''''''''''n' 它不会在缓冲区中存储'\ n'我认为? 现在理解如果我给出一个空格分隔的字符串会发生什么,我知道scanf会丢弃它。
但我不明白流是如何保持缓冲的,为什么理解它很重要?没有冒犯,我真的很困惑stdin文件操作& scanf在C也许一个很好的例子来说明这一点。 我不是一个非常讨厌的家伙,所以我觉得手册不是很初学者友好。 我在文件输入\输出用C很有兴趣:) :) :)