gpt4 book ai didi

c - 从文件中读取数字并将其替换为另一个数字

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:43 26 4
gpt4 key购买 nike

12 23 34 45 56
34 23 56 21 43
12 57 98 34 12

以上是一个txt文件的内容。

在 C 中,我可以使用 fgetc(myFile) 获取第一个整数并将其存储到整数变量中。

我会检查它是否是 12。

如果它是 12,我想用 25 替换。我如何准确地将它替换为某个数字。

我如何重写它的某个部分?

或者我是否将每个数字存储到一个数组中,将所有 12 替换为另一个数字并覆盖整个文件?

最佳答案

将结果保存到另一个文件,而不是重命名它。此代码打开 homework.txt,替换所有 12 -> 25 并将结果写入 homework_new.txt

#include <stdio.h>
#include <string.h>

#define MAXBUF 42
#define HOMEWORKFILE "homework.txt"
#define HOMEWORKNEWFILE "homework_new.txt"

int main(int argc, char **argv)
{
char buf[MAXBUF+1];
char str[MAXBUF+1];
FILE *hw;
FILE *hw_new;
int length;
int i, j;
int number;
char is_first;
int n_line = 0;

hw = fopen(HOMEWORKFILE, "r");
hw_new = fopen(HOMEWORKNEWFILE, "w");

if (!hw)
{
fprintf(stderr, "File not found: %s\n", HOMEWORKFILE);
return 5;
}

while(!feof(hw))
if (fgets(buf, MAXBUF, hw) != NULL)
{
length = strlen(buf);
j = 0;
str[0] = 0;
is_first = 1;
n_line++;
/* parse string */
for(i = 0; i < strlen(buf); ++i)
{
if (isblank(buf[i]) || buf[i] == '\0' || buf[i] == '\n')
{
str[j] = 0;
number = atoi(str);

if (is_first)
is_first = 0;
else
fprintf(hw_new, " ");

if (number == 12)
fprintf(hw_new, "%d", 25);
else
fprintf(hw_new, "%d", number);

j = 0;
}
else if (isdigit(buf[i]))
{
str[j++] = buf[i];
}
else
{
fprintf(stderr, "bad input on line %d '%s'\n", n_line, buf);
return 100;
}
}
fprintf(hw_new, "\n");

}

fclose(hw_new);
fclose(hw);
return 0;
}

关于c - 从文件中读取数字并将其替换为另一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7537754/

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