从单个源文件创建多个文件

时间:2016-05-08 14:37:52

标签: c

我正在学习C并尝试解决问题。我有一个文本文件名elements.txt,其中包含以下内容:

elements.txt

Carbon (from Latin: carbo "coal") is a chemical element  ..

Oxygen is a chemical element with symbol O ..

Platinum is a chemical element with symbol Pt ...

Silicon is a chemical element with symbol Si ...

Titanium is a chemical element with symbol Ti ...

我想基于来自carbon.txt的{​​{1}},oxygen.txtplatinum.txtsilicon.txttitanium.txt等元素创建多个文件

这是我的源代码:

elements.txt

我确实创建了我的文件但是氧气以铂金打印出来,而铂,硅和钛则用钛印刷。似乎有一个错误,当我做一个while循环读取角色。不知道如何解决这个问题。有没有办法使用for-loop读取多个文件并写入多个文件?

非常感谢任何帮助!谢谢

2 个答案:

答案 0 :(得分:2)

正如评论所示,为了使此块正确,您应该添加return语句:

 if(fp1 == NULL || fp2 == NULL || fp3 == NULL || fp4 == NULL || fp5 == NULL){
    printf("Error opening %s for wrting. Program leaving",fn);
    return; //add this statement to leave function
  }

否则,语句程序终止将是一个谎言。

如果希望代码处理只包含空格的行的输入文件(而不是修改输入文件),请在将该行放入输出文件之前为仅包含空格的行添加测试。使用fgets()strstr()strlen()将适合创建此类测试。

答案 1 :(得分:1)

.txt输入文件中,不同元素的内容由两个换行符分隔,而不是一个。尝试重写它:

Carbon is... 
Oxygen is... 

等。 (在段落末尾没有额外的换行符)。

或者,您可以检查是否存在2个换行而不是1换行,但这会更复杂。

(解释:该程序将碳写入fn1,然后看到换行符并切换到fn2然后看到另一个换行符并切换到fn3同样的事情发生在氧气段的末尾)。