【发布时间】:2016-02-18 11:12:35
【问题描述】:
这可能是一个简单的问题,答案很简单,但是通过网站搜索,除了我已经编写的 Python 代码,我没有找到任何东西(可能是因为我是 C 编程新手),而且效率很低。
假设我在timestamps.txt 文件中有一个数据列表,格式如下:
<large integer>, <integer between 1 and 8>
<large integer>, <integer between 1 and 8>
等等(文件大约4GB)...
我想做的只是将第二列复制到另一个文件,比如singles.txt。
到目前为止我所做的工作有效,但这是一种相当幼稚的方法并且需要太多时间。这是我的代码:
int main(int argc, char const *argv[])
{
FILE *input_file;
FILE *output_file;
char ch;
int check = 0;
input_file = fopen("timestamps.txt","r");
output_file = fopen("singles.dat","w");
if (!input_file)
return -1;
while((ch = getc(input_file))!=EOF)
{
if(check==1)
{putc(ch,output_file);putc('\n',output_file);}
if(ch == ',')
check = 2;
else
check -= 1;
}
fclose(input_file);
fclose(output_file);
return 0;
}
我确定有更快的方法,但我似乎无法使任何工作。 任何帮助将不胜感激。
【问题讨论】:
-
你现在得到了什么?
-
除了我刚刚发布的代码,我只是尝试了
fscanf和fprintf的组合尝试,但没有任何效果。
标签: c parsing file-management