-1

なぜこれを取得するのですか、getchar()関数ですか?

printf("Type stop to end connection");
    while ((d=getchar()) != '\n' && i < MAXLENGHT){
    buf2[i++] = d;
}
buf2[i] = '\0';
dfg = strlen(buf2);}
while (d != 'stop'); // here the error
close(sockfd);
exit(0);

}

4

2 に答える 2

4

一重引用符はcharリテラルを示します。通常、それは単一の文字を意味します。複数文字のリテラルは許可されていますが、標準では、その意味は実装で定義されているとされています。'stop'文字が多すぎるため、実装は無効と見なされているように見えます。

いずれにせよ、あなたは複数文字のリテラルを書くつもりはなかったと私は確信しています。strcmpコードのスニペットを見ると、入力を文字列に読み込み、文字列との同等性をテストするために使用することを意味していると思います"stop"

于 2013-01-06T21:10:40.907 に答える
1

構文エラー ("" ではなく '') とは別に、おそらく文字列を比較したいでしょう:

while (strcmp(buf2, "stop") != 0) ...
于 2013-01-06T21:12:32.073 に答える