gpt4 book ai didi

c - 在实际 EOF 之前的 cmd 转发输出中的文件结尾

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:29 25 4
gpt4 key购买 nike

我有一个文件,其中包含 cmd 命令的转发输出。 C 程序循环遍历字符,直到到达文件末尾。但不幸的是,在文件实际结束之前,文件中有一些 EOF 指示符。文件内容为:

Abbildname                PID      Sitzungsname     Sitz.-Nr.   Speichernutzung
========================= ======== ================ =========== ===============
System Idle Process 0 Services 0 8 K
System 4 Services 0 5ÿ744 K
smss.exe 440 Services 0 276 K
csrss.exe 616 Services 0 1ÿ924 K
wininit.exe 720 Services 0 944 K
services.exe 792 Services 0 7ÿ892 K
lsass.exe 800 Services 0 14ÿ300 K
svchost.exe 924 Services 0 420 K
fontdrvhost.exe 952 Services 0 680 K
svchost.exe 960 Services 0 23ÿ880 K
WUDFHost.exe 1012 Services 0 7ÿ416 K
svchost.exe 484 Services 0 14ÿ816 K
svchost.exe 544 Services 0 5ÿ196 K

这就是我读取文件内容的方式:

FILE *file;
file = fopen(completePath, "r");
char character;
while((character=getc(file))!= EOF){
putchar(character);
}
fclose(file);

任何时候出现“ÿ”时,它都被解释为 EOF。我该如何解决这个问题,以便我读入整个文件并在到达实际 EOF 时停止?

最佳答案

EOF 不是一个字符值。它是整数值。保证没有其他字符等于它。但是,您在比较之前将 getc 返回的值(int 类型)转换为 char(在这种情况下未定义)。您应将char character;修改为int character;

关于c - 在实际 EOF 之前的 cmd 转发输出中的文件结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48480799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com