-2
我一直在嘗試編寫用戶在命令shell中給出的單詞,但出於某種原因,我的程序在read()函數後立即退出,因此main():「in main2 \ n」中的文本是從來沒有寫過。我一直試圖找到我的問題約一個小時,似乎無法找到它。爲什麼我的寫入方法未初始化?
# include <stdio.h>
void write_zin(const char* zin,int length_zin){
const char * runner =zin;
printf("out of loop\n");
while(runner!=(runner+length_zin)){
printf("%c",*runner);
runner++;
}
}
void read(char* zin,int NUMBER_LETTERS,int NUMBER_WORDS){
int i ;
char woord[NUMBER_LETTERS+1];
zin[0]='\0';
for(i =0;i<NUMBER_WORDS;i++){
printf("Give a word with %i letters\n",NUMBER_LETTERS);
scanf("%s",woord);
strcat(zin,woord);
strcat(zin,'\0');
}
strcat(zin,'\0');
}
int main(){
const int NUMBER_LETTERS = 5;
const int NUMBER_WORDS = 2;
char zin[(NUMBER_LETTERS+1)*NUMBER_WORDS];
printf("in main 1\n");
read(zin,NUMBER_LETTERS,NUMBER_WORDS);
printf("in main 2\n");
write_zin(zin,(NUMBER_LETTERS+1)*NUMBER_WORDS);
printf("in main3\n");
return 0;
}
您是否嘗試過使用調試器? –
'strcat(zin,'\ 0');' - 你期望這樣做? – ecatmur
@米奇,我還沒有想到如何使用調試器在學校。 @ ecatmur,在每個單詞後面加一個空格 – BURNS