我正在玩 fgetc 并且想知道如何让我的循环打印一次行部分,然后打印前 16 个字符。
这是我的代码:
int main(int argc, char * argv[])
{
FILE *fp;
if((fp = fopen(argv[1], "rb+")) == '\0')
{
perror("fopen");
return 0;
}
getchar(fp);
return 0;
}
void getchar(FILE *fp)
{
int c;
size_t linecount = 0;
while((c = fgetc(fp)) != EOF)
{
printf("line : ");
printf("%c ", c);
linecount++;
if(linecount == 16)
{
printf("\n");
}
}
}
我希望我的输出是这样的:
line: ? 5 d s d a d 0 0 0 0 0 0 0 0 0 0 0
line: a d s x c v d 0 0 0 0 0 0 0 0
我尝试使用这个 for 循环打印字符:
for(i = 0; i < 16; i++)
{
printf("%c ", c);
}
但这并没有得到其他字符,因为循环仍然集中在第一个字符上