我想读取一个txt文件的第一行并将其保存到hexArray。
该行包含 32 个字符,代表一个十六进制数字。
我有以下代码:
#include <stdio.h>
#include <stdlib.h>
#include "gmp.h"
char *saveToArray(FILE *hexFile);
int main(int argc, char* argv)
{
char ch;
FILE *hexFile = fopen("hex.txt", "rb"); //recebido pela consola
char *hexArray = saveToArray(hexFile);
for(int i = 0 ; i < 32; i++)
{
printf("%c", hexArray[i]);
}
printf("\n%d", sizeof hexArray);
ch = getchar();
return 0;
}
char *saveToArray(FILE *hexFile)
//metodo que devolve uma array contendo uma linha do ficheiro
{
char hexArray[32];
fgets(hexArray, sizeof hexArray, hexFile);
return hexArray;
}
看起来没问题,但输出显示情况并非如此。
请帮我解决这个问题。
谢谢! 坎普斯。
最佳答案
您必须通过执行以下操作使 hexArray
static
:
char *saveToArray(FILE *hexFile)
//metodo que devolve uma array contendo uma linha do ficheiro
{
static char hexArray[32];
fgets(hexArray, sizeof hexArray, hexFile);
return hexArray;
}
或者,通过这样做:
char hexArray[32];
int main(int argc, char* argv)
{
char ch;
...
关于c - C语言中只读取一行txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20665930/