gpt4 book ai didi

c - 文件处理 : Extra characters in output

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

#include <stdio.h>

int main () {

FILE *fp;
char ch;
char data[100];
int i;

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

i=0;

while( (ch=fgetc(fp)) != EOF) {
data[i]=ch;
i++;
}

i=0;

while(data[i]) {
printf("%c",data[i]);
i++;
}

return 0;

}

文件.txt的内容:

udit@udit-Dabba /opt/lampp/htdocs $ cat file.txt 
aGVsbG9teW5hbWVpc2toYW4K

程序输出:

udit@udit-Dabba /opt/lampp/htdocs $ sudo vim test.c
udit@udit-Dabba /opt/lampp/htdocs $ sudo gcc test.c
udit@udit-Dabba /opt/lampp/htdocs $ ./a.out
aGVsbG9teW5hbWVpc2toYW4K
P�udit@udit-Dabba /opt/lampp/htdocs $

为什么这两个额外的字符出现在数组的输出中...???输入文件实际上是base-64编码的结果。

最佳答案

fgetc返回 int 而不是 char

看看这是否适合你:

#include <stdio.h>

int main (void) {

FILE *fp;
int ch;
int data[100] = { 0 }; // Easiest way of initializing the entire array to 0
int i;

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

i=0;

while( (ch=fgetc(fp)) != EOF) {
data[i]=ch;
i++;
}

// data[i]=0; -->You did not provide a terminating point -
// Not needed if the array is initialized the way i did.

i=0;

while(data[i]) {
printf("%c",data[i]);
i++; }
return 0;

}

关于c - 文件处理 : Extra characters in output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7612555/

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