[英]scanf in a loop till carriage return
我試圖讀取多個字段的用戶輸入。 但是沒有指定字段數。 我想讀回所有的字,直到回車。 我試過這段代碼,但它不起作用:
char str[256];
while(1)
{
scanf("%s", str);
if(str[strlen(str)] == '\n')
break;
else
printf("Got %s\n", str);
}
用戶輸入示例:
1.存儲文件1
我需要解析store和file1並打破循環。
2.存儲file1 file2
我需要解析store,file1和file2並打破循環。
想知道如何在回車時突破循環。
謝謝。
采用
char str[256]
scanf("%255[^\n]", str); /*edit*/
它將讀取換行符或(編輯:) 255個字符,以先到者為准。
您可以使用fgets()讀取,然后使用strtok()將緩沖區拆分為標記
這樣你可以完全控制一切。
目前,你的char數組str [256]沒有任何東西或垃圾,所以當你查找時,你將找不到它。
嘗試這個。
char str[256];
while(1)
{
scanf("%s", str);
printf("Got %s\n",str);
if(fgetc(stdin) == '\n')
break;
}
char str[256]
scanf("%256[^\n]", str);
小心那些代碼。 它將溢出char數組以獲得長字符串。 您希望scanf中的%255容納空終止符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.