C語言gets 問題,C語言gets 問題

時間 2021-09-11 22:33:35

1樓:匿名使用者

#include

#include

int main(void)

else

}if(f) printf("yes\n");

else printf("no\n");

} return 0;}

2樓:於苒琦芳澤

1.gets是以回車為結尾的.

你在字串中提前鍵入的回車

2.是快取區問題..

有可能是沒有在gets

之前清空快取區.

導致上文的輸入被當作gets的了

3樓:寇洋板炳君

因為你在使用gets之前還使用過別的讀入函式(或巨集),有的是不會把末尾的換行讀取掉的,就會留在緩衝區,當你呼叫gets時,把上一次的換行字元給讀取了,所以就像直接跳過了。

改善的方法是為gets函式上一句加上getchar();用於吸收回車。或是加fflush(stdin);重新整理緩衝區。

4樓:肥醉瑞雅寧

gets

和scanf混用時要在

scanf

後面加getchar

因為scanf

不接受回車和空格

所以要getchar過濾掉回車和空格

然後才能用gets來完整的接受

5樓:樊俐法雲霞

應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢位。如果溢位,多出來的字元將被寫入到緩衝區後面的記憶體位置,這將破壞乙個或多個不相關變數的值。

可能是buffer緩衝區不夠大造成的,也或者異常終止是gets使用錯誤。

關於c語言裡的gets()問題,為什麼名字輸入被跳過?

6樓:淡若親風

gets函式可能把stdin緩衝區裡面的內容讀到陣列裡面,所以會被跳過

7樓:匿名使用者

c語言裡的gets()函式功能是從輸入快取中讀取多個字元,遇到回車符時,結束輸入。

當使用gets()函式之前有過資料輸入,並且,操作者輸入了回車確認,這個回車符沒有被清理,被儲存在輸入快取中時,gets()會讀到這個字元,結束讀字元操作。因此,從使用者表面上看,gets()沒有起作用,跳過了。

解決辦法:

方法一、在gets()前加fflush(stdin); //強行清除快取中的資料(windows下可行)

方法二、根據程式**,確定前面是否有輸入語句,如果有,則增加乙個getchar()命令,然後再呼叫 gets()命令。

方法三、檢查輸入結果,如果得到的字串是空串,則繼續讀入,如:

char str[100]=;

do while( !str[0] );

8樓:

在for迴圈之前加乙個getchar();就應該可以解決你的問題

c語言關於gets的問題(輸入出現了問題)

9樓:六翼幻世

輸入n的時候的回車被gets(a)收到了,然後你認為輸入a的時候的內容,被m接收了

gets()和scanf()不同gets()將回車之前的專字元全部取走,之後將屬回車變成』\0』並且取走;

如果scanf()後面緊跟gets()那麼要在兩個之間加入getchar()取走回車

如scanf("%c",&n);

getchar();

gets(str);

10樓:夏天的小紅花

這是由於抄程式在讀取數字時只讀取了前bai面的數字du部分,而把後面的回車符留zhi在了鍵盤緩dao沖區,所以在下面讀取字串時遇到這個回車符就結束了,也就是說程式讀到了乙個空的字串。另外,在下面複製字串的時候並沒有複製字串的結束符。下面的**改正了這些問題。

#include

#include

int main()

b[j]='\0';

printf("%s",b);

return 0; //有更改}

c語言問題,C語言問題。

考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...

C語言問題,c語言問題?

自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...

c語言問題,C語言問題?

這個問題說難不難,但理解可能有點玄乎而已,但是打個比方來理解就太容易掌握啦!就是說scanf的認定讀取,比如你單純的scanf c ch 那麼實際上已經認定了第乙個字元出現就把它賦予給ch,如果是你的scanf c 前面多了乙個空格,所以就認定了出現第乙個空格後的字元賦予給ch,如果寫成這樣 sca...