[英]Read file from stdin C with scanf
我可以使用scanf("%s", &input)
從stdin
讀取文件內容。
如果我不知道文件要多長時間,應該為input
字符串分配多少空間?
考慮使用fgets
代替scanf
。 scanf
可能導致溢出,但是您可以告訴fgets
您想要讀取的最大大小。 如果需要scanf
進行格式掃描,則仍可以在fgets
之后使用sscanf
。
char * fgets ( char * str, int num, FILE * stream );
您應該反問。 您分配一個已定義大小的緩沖區,它們將限制輸入,例如fgets
scanf
。
#define SIZE 256
char buf[SIZE];
fgets(buf, SIZE, stdin);
要么
scanf("%255s", buf);
然后重復閱讀。
使用fgets
代替scanf
取決於輸入是面向行的還是空格分隔的。 還有... RTFM ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.