gpt4 book ai didi

c - 读取文件并存储到字符串中

转载 作者:行者123 更新时间:2023-11-30 17:09:53 24 4
gpt4 key购买 nike

你好,我正在尝试编写一个简单的程序,该程序将读取文本并将其存储到字符串中,最后将其返回到我调用函数的位置。到目前为止我所拥有的是:

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++;
}
}
}

但我不知道这是否是正确的方法。我应该做一个动态 Char 而不是使用 malloc 吗?我想做的事情的最佳方法是什么?

[编辑]

我在这一行收到错误:letra[j] = "";

incompatible pointer to integer conversion

最佳答案

您收到错误,因为 "" 是一个字符串,而您试图将其分配给 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]; 存在潜在危险,但这不是您的问题所在。

个人说明:您可以轻松地在 charint 数据类型之间进行相同的类型转换,因为它们都是存储字节。这使得在计算之前通过将字母转换为 int 来轻松地对字母进行一些数学运算。

关于c - 读取文件并存储到字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33111536/

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