gpt4 book ai didi

c - 删除c中的一列输入文件并写入输出文件

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

我有一个问题,我想从输入文件中删除第一列并将其写入输出文件。我不知道该怎么做。我搜索了整个网站,但找不到我想要的答案。这是我的输入文件,第一行是标题:

7 11 11
4 5 1 3 2 2 1
2 1 1 3 2 4 1
5 5 3 4 2 2 2 1 2
3 2 1 3 2 6 2 7 5
1 1 1 3 3 6 2
6 5 2 4 2 7 6
2 6 6 4 5

我的预期输出文件将如下所示:

7 11 11
5 1 3 2 2 1
1 1 3 2 4 1
5 3 4 2 2 2 1 2
2 1 3 2 6 2 7 5
1 1 3 3 6 2
5 2 4 2 7 6
6 6 4 5

我如何在 C 中执行此操作?这是我到目前为止尝试过的

int main()
{
FILE *ifp;
FILE *ofp;
char fname[]="input.txt";
char fname2[]="input-v2.txt";
char *mode = "r";
int n;
int m;
int fmt;
ifp = fopen(fname, "r");
ofp= fopen(fname2, "w");
char *token;
char *s=" ";
char line[100000];
if (ifp == NULL)
{
printf("\nFailed to open file.\n");
exit(1);
}
fscanf(ifp,"%d %d %d",&n,&m,&fmt);
while (fgets(line, sizeof(line), ifp)) {
char *copy=strdup(line);
if(line[0] == '\n')
continue;
char *copy=strdup(line);
if(line[0] == '\n')
continue;

token=strtok(copy,s);

while (token!=NULL && token!=""){
char *val=token;
val="";
fprintf(ofp,"%s",val)
token=strtok(NULL,s);
}
fprintf(ofp, "\n");
}

fclose(ifp);
return 0;
}

我真的不知道该怎么办。我实际上需要从每一行中删除第一个字符,但这个不固定的列号让我感到困惑。

最佳答案

代替你的循环你可以使用这个 -

token=strtok(copy,s);
token=strtok(NULL,s); // get complete string after space
if(token != NULL){
fprintf(opf, "%s", token);
}

循环中的一些问题-

while (token!=NULL && token!=""){
char *val=token;
val=""; // why point val to "" ?
fprintf(ofp,"%s",&val) // & is not required with val
token=strtok(NULL,s);
}

关于c - 删除c中的一列输入文件并写入输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43610861/

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