我想要做的是顛倒用戶輸入的一串數字。它會編譯並運行,直到我在scanf
之後輸入。那麼我得到一些微軟運行時錯誤...怎麼回事?顛倒用戶輸入的整數字符串(C)
注意:這是作業,但我已經弄清了邏輯。讓我感到困惑的是這個錯誤。
#include <stdio.h>
int main() { unsigned int giveStr = 0; char* charIt; printf("Enter a number to be reversed.\t"); scanf("%d", &giveStr); fflush(stdin); sprintf(charIt, "%d", giveStr); revStr(giveStr); getchar(); return 0; } revStr(unsigned int n) { char buffer[100]; int uselessvar, counter = 0; for (; n > 0;) { uselessvar = sprintf(&buffer[counter], "%d", n); counter++; } for (counter = 0; counter > 0;) { printf("%c", buffer[counter]); counter--; } return 0; }
編輯:爲新行沖洗標準輸入:/也像here只是沒有與該程序。與我的。
你應該粘貼你得到的實際錯誤。我對Windows沒有任何瞭解,但我很驚訝你正在刷新標準輸入。 – DSM 2011-02-06 03:04:49
刷新換行 - >他們跟scanf一樣婊子 – tekknolagi 2011-02-06 03:07:32
就這樣你知道,'unsigned int`的正確格式字符串是`「%u」`,而不是`「%d」`。雖然它不會真正導致錯誤,但您應該修復它。 – 2011-02-06 03:14:19