這是一個更大的程序的一部分,但是讓我發瘋的事實是程序不會等待某些東西從字符串s中的標準輸入讀取(它只是在字符串s中放入null),但是如果我首先讀取字符串s,然後讀取字符c,程序就可以正常工作。問題是我需要按照特定的順序讀取數據。 我該如何解決它?程序不會等待第二次讀取
char s[100],c;
printf("enter character:\n");
c=getchar();
printf("enter string text:\n");
fgets(s,101,stdin);
uint8_t s_len = strlen(s) - 1;
s[s_len] = '\0';
printf("i have read %s\n",s);
我有同樣的問題,在這裏我已經解決了http://stackoverflow.com/questions/15340343/strings-gets-and-do-while – Mitro
爲什麼你認爲你可以讀取101個字節到100個字符數組?你應該使用'sizeof s'而不是硬編碼的101.另一個bug:getchar()返回int,而不是char。而s_len應該是size_t,而不是uint8_t。 – Jens
@Jens如果你不想檢查EOF,可以將'getchar'的結果存儲在'char'中。 – teppic