【发布时间】:2010-12-23 11:19:20
【问题描述】:
这个网站是一个巨大的知识来源,它在过去帮助了我无数次。
我刚开始自学C - 到目前为止,我只写了几个批处理文件。
因此,我谦虚地请求您的帮助 - 我想要一些关于如何编写 C 程序的指导:
- 1) 打开一个包含以下内容的文本文件
"batch1.cmd" "argument1" "1"
"batch2.cmd" "argument2" "0"
"batch3.cmd" "argument3" "1"
-
2) 解析它以找到“0”或“1”
如果“1”调用他指定的批处理文件及其参数
如果 "0" 进入下一行 - 我会定期更新文本文件,所以我只需要更改 1 或 0 而不会重写所有这些行。
我已经在互联网上找到了很多关于 C 解析的帮助,但没有关于如何实现的教程。 我知道这似乎很容易,而且我必须表现得非常懒惰,但我向你保证,我已经做了三天了,但没有任何成功。
我不一定要一个完整的脚本,只是一个答案,比如“看看下面的函数,它的正确语法是 yadda yadda”等等。
我想我必须使用
int Search_in_File(char *fname, char *str)
{ FILE *fp;
fp=fopen("c:\\batchlist.txt", "r");
和
system("c:\\batch1.cmd argument1");
但我无法“连接点”。
提前致谢!
【问题讨论】:
-
您已打开文件。接下来(在检查
fopen是否成功之后)是读取它。考虑fread和fgets,决定你喜欢哪个来完成这项任务。 -
对于这个任务,特别是考虑到它是一个文本文件, fgets() 可能最适合你。完成后不要忘记 fclose() 文件!
-
将文件本身设为批处理文件并用
" "(4 个空格)或"rem "覆盖行的前4 个字符以启用/禁用一个不是更简单吗?行吗? -
@David:你必须使用 C 吗?这是我很想写成批处理文件本身的东西。
-
如果不是为了作业,我建议将 0/1 标志移动到每一行的第一个参数。这将使解析变得更加容易。
标签: c parsing batch-file arguments