我正在从文件中读取一个字符串,然后尝试在字符串中添加零直到它达到 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;
}
我给了我与第一个完全相同的结果,所以我不明白这里发生了什么,以及为什么我会得到这些结果。如果您能解释我在这里做错了什么,我将不胜感激。提前致谢。