ファイルから文字列を読み取ってから、100 に達するまで文字列にゼロを追加しようとして、文字列を印刷していますが、何が問題なのかわかりません。複数のアプローチを試しました、しかし、それらはすべて機能していないようです。
int main(int argc, char *argv[])
{
if (argc != 2 ){
fprintf(stderr, "usage: server filename \n");
exit(1);
}
FILE *file = fopen(argv[1], "r");
if (file==0)
{
printf("file couldn't be opened\n");
exit(1);
}
int i;
char str1[100];
//char str2[100];
//memset(str2,0,sizeof(str2));
//for(i = 0; i < 100; i++)
// fprintf(stdout, "str2[%u]: %u\n",i,str2[i]);
while (fscanf(file, "%s", str1) != EOF)
{
for(i=13 ; i < 100; i++)
str1[i]=0;
}
for(i = 0; i < 100; i++)
fprintf(stdout, "str1[%u]: %u\n",i,str1[i]);
return 0;
}
しかし、私はそれを印刷します
str1[0]: 119
str1[1]: 111
str1[2]: 114
str1[3]: 108
str1[4]: 100
str1[5]: 0
str1[6]: 0
str1[7]: 0
up till 99
ファイルに「hello」という文字列がありますが、これを理解していないので、これを試しました
int main(int argc, char *argv[])
{
if (argc != 2 ){
fprintf(stderr, "usage: server filename \n");
exit(1);
}
FILE *file = fopen(argv[1], "r");
if (file==0)
{
printf("file couldn't be opened\n");
exit(1);
}
int i;
char str1[12];
char str2[100];
memset(str2,0,sizeof(str2));
//for(i = 0; i < 100; i++)
// fprintf(stdout, "str2[%u]: %u\n",i,str2[i]);
while (fscanf(file, "%s", str1) != EOF)
{
strcpy(str2,str1);
}
for(i = 0; i < 100; i++)
fprintf(stdout, "str2[%u]: %u\n",i,str2[i]);
return 0;
}
最初の結果とまったく同じ結果が得られたので、ここで何が起こっているのか、なぜこれらの結果が得られたのかわかりません。ここで私が間違っていることを説明していただければ幸いです。前もって感謝します。