我寫了一個簡單的方法,從一個長字符串獲取輸入並打印它。我將數據保存在char數組中,並嘗試將數組的最後一個元素設置爲'\ 0',以便終止空值,以便我可以printf(%s,array)。C字符數組打印爲字符串錯誤,接受空終止?
#include <stdio.h>
#define MAX 9
#define DEBUG 1
int QUIT = 0;
int assignNewBoard(void);
void main (int argc, char *argv[]) {
assignNewBoard();
}
int assignNewBoard(void) {
int row,col , count=0,maxCount=(MAX*MAX);
char ch;
char input[maxCount+MAX]; //our buffer with room for overflow.
//Hopefully never more than 90chars.
while((ch = fgetc(stdin)) != '\n') {
//input checks
if(feof(stdin)){
if(DEBUG) printf("Finished!\n");
QUIT = 1;
}
count++;
input[count] = ch;
}
if(DEBUG)printf("::");
input[count+1] = '\0'; //null termination for printing.
printf("%s\n",input);//This doesn't seem to happen at all in output!
if(DEBUG) printf("We got %d count!\n", count);
return 0;
}
但上述代碼不會將我的字符數組打印爲字符串!只需在:: in控制檯後打印空白即可! 那麼我在這裏做錯了什麼?在我的代碼中,我一直在這樣工作,但現在不是這樣,即使在簡化的文件中也是如此!
運行時應該有一行「:(:(輸入)」,但行簡單地是「::」來代替。
我正在使用GCC進行編譯。
有什麼問題? –
更好地解釋了問題。 – user1695505
似乎對我來說很好,這取決於你真正想要做什麼。編輯:它爲我打印一個字符串,你使用什麼IDE /編譯器? –