なぜこれを取得するのですか、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);
}
なぜこれを取得するのですか、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);
}
一重引用符はchar
リテラルを示します。通常、それは単一の文字を意味します。複数文字のリテラルは許可されていますが、標準では、その意味は実装で定義されているとされています。'stop'
文字が多すぎるため、実装は無効と見なされているように見えます。
いずれにせよ、あなたは複数文字のリテラルを書くつもりはなかったと私は確信しています。strcmp
コードのスニペットを見ると、入力を文字列に読み込み、文字列との同等性をテストするために使用することを意味していると思います"stop"
。
構文エラー ("" ではなく '') とは別に、おそらく文字列を比較したいでしょう:
while (strcmp(buf2, "stop") != 0) ...