嗯,我知道很多類似的問題,但是,我願意澄清是否需要,因爲我的問題可能不是很清楚。 所以它是這樣的,說我想在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很有興趣:) :) :)