你好我试着做一个简单的程序,它将读取一个文本并存储到一个字符串中,最后将它返回到我称之为我的函数的地方。我到现在所拥有的是:
void crawler() {
FILE *file;
char line[256], letra[256];
int j = 0;
file = fopen("teste.txt", "r");
letra[j] = fgetc(file);
j++;
while (fgets(line, sizeof(line), file)) {
for(int i = 0; line[i] != 00; i++)
{
if(line[i] == 46)
{
if(line[i+1] == 46)
{
letra[j] = " ";
j++;
}
}
else
{
letra[i] = line[i];
j++;
}
}
}
但我不知道这是否正确。我应该使用malloc做一个动态Char吗?我试图做的最好的方法是什么?
[编辑]
我在这一行收到错误:letra[j] = " ";
与整数转换不兼容的指针
答案 0 :(得分:0)
您收到错误,因为" "
是一个字符串,并且您尝试将其分配给char
数据类型。在C中,字符串由char *
数据类型处理,该类型是指针。您不能将指针转换为其他数据类型,因此错误。
你应该这样做:
while (fgets(line, sizeof(line), file)) {
for(int i = 0; line[i] != 00; i++)
{
if(line[i] == 46)
{
if(line[i+1] == 46)
{
letra[j] = ' ';
j++;
}
}
else
{
letra[i] = line[i];
j++;
}
}
}
我也发现letra[i] = line[i];
存在潜在危险,但这不是您的问题所在。
个人注意事项:您可以轻松地在char
和int
数据类型之间进行类型转换,因为它们都是存储字节。这使得在计算之前将它们转换为int
可以很容易地对字母进行一些数学运算。
答案 1 :(得分:0)
希望这能解决你的问题,
#include<stdio.h>
FILE *pfile;
char fileData[200],letter;
int ind;
void storeData();
int main()
{
storeData();
printf("Data From File:\n");
printf("%s",fileData);
return 0;
}
void storeData()
{
ind=0;
pfile=fopen("textf.txt","r");
while((letter=fgetc(pfile))!=EOF)
{
fileData[ind]=letter;
ind++;
}
fileData[ind]='\0';
}