[英]Text File Parsing in C - Calling a Batch File Or Not
該網站是豐富的知識來源,過去曾為我提供過無數次幫助。
我只是自己開始學習C-到目前為止,我只寫了一些批處理文件。
因此,我謙虛地尋求您的幫助-我想要一些有關如何編寫C程序的准則,該准則將:
"batch1.cmd" "argument1" "1"
"batch2.cmd" "argument2" "0"
"batch3.cmd" "argument3" "1"
2)解析以找到“ 0”或“ 1”
如果調用“ 1”,則他使用其參數指定批處理文件
如果“ 0”走到下一行-我將定期更新文本文件,因此我只需要更改1或0而不重寫所有這些行。
我已經找到了很多有關在Internet上使用C進行解析的幫助,但是還沒有有關如何實現該功能的教程。 我知道這似乎很容易,而且我必須表現得很懶惰,但是我向您保證我已經參加了三天,但沒有任何成功。
我並不一定要求提供完整的腳本,而只是要求“回答以下功能,其正確語法是yadda yadda”之類的答案。
我想我必須使用
int Search_in_File(char *fname, char *str)
{ FILE *fp;
fp=fopen("c:\\\\batchlist.txt", "r");
和
system("c:\\\\batch1.cmd argument1");
但我不知何故不能“連接點”。
提前致謝!
看看http://en.wikipedia.org/wiki/C_file_input/output-您非常接近。 打開文件后,您需要讀取文件中的行或字符,並根據找到的內容執行system
命令。
維基頁面將向您展示如何-它也有一些方便的示例代碼:)
int Search_in_File(char *fname, char *str)
{ FILE *fp;
char line[100],a[100],b[100],c[100];
fp=fopen("c:\\batchlist.txt", "r");
if( !fp ) ... errorhandling here ...
while( fgets(line,100,fp) )
{
if( strchr(line,'\n') ) *strchr(line,'\n')=0;
if( 3==sscanf(line,"%s%s%s",a,b,c) && !strcmp(c,"1") ) /* "%s" breaks at whitespaces, attention for whitespaces in your strings here! */
{
sprintf(line,"%s %s",a,b);
system(line);
}
}
...
fclose and so on ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.