c语言如何取出文件里字符串,在C中,我应该如何读取一个文本文件并打印所有字符串...

最简单的方法是读取字符,并在阅读后立即打印:

int c;

FILE *file;

file = fopen("test.txt", "r");

if (file) {

while ((c = getc(file)) != EOF)

putchar(c);

fclose(file);

}

c是int,因为EOF是负数,并且纯字符可以是无符号的。

如果你想读取块中的文件,但没有动态内存分配,你可以做:

#define CHUNK 1024 /* read 1024 bytes at a time */

char buf[CHUNK];

FILE *file;

size_t nread;

file = fopen("test.txt", "r");

if (file) {

while ((nread = fread(buf, 1, sizeof buf, file)) > 0)

fwrite(buf, 1, nread, stdout);

if (ferror(file)) {

/* deal with error */

}

fclose(file);

}

上面的第二种方法本质上是如何使用动态分配的数组读取文件:

char *buf = malloc(chunk);

if (buf == NULL) {

/* deal with malloc() failure */

}

/* otherwise do this. Note 'chunk' instead of 'sizeof buf' */

while ((nread = fread(buf, 1, chunk, file)) > 0) {

/* as above */

}

您的方法fscanf()与%s作为格式丢失文件中的空格的信息,因此它不是完全复制文件到标准输出。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值