这里是编程初学者,所以我正在研究一个简单的程序,该程序使用用户的输入来命名文本文件,然后该程序将ipconfig / all信息存储在该文本文件中。我收到错误消息“无法识别或命令行不完整”。我知道使用命令提示符将ipconfig / all写入文本文件非常容易,但我希望可以使用C使其工作。
谢谢!
#include<stdlib.h>
#define MAX_LEN 20
int main()
{
char myfile[MAX_LEN];
printf ("Enter text file name: ");
scanf ("%s", myfile);
system("C:\\Windows\\System32\\ipconfig /all 2>&1 \\Location\myfile.txt");
return 0;
}
答案 0 :(得分:1)
这里有很多错误
system("C:\\Windows\\System32\\ipconfig /all 2>&1 > myfile.txt")
但是:
system
,popen
可以获取命令输出,而无需进行难看的重定向我的使用popen
的建议(它缺少一些错误检查之类的方法,但基本上可以正常工作),该建议会返回一个管道句柄。只需逐个字符地读取它,直到最后,然后将结果写入输出文件即可:
#include<stdio.h>
#define MAX_LEN 20
int main()
{
char myfile[MAX_LEN];
printf ("Enter text file name: ");
fflush(stdout);
scanf ("%19s", myfile);
FILE *f = popen("ipconfig /all","r");
FILE *fw = fopen(myfile,"w");
if (fw)
{
while(1)
{
int c = fgetc(f);
if (c == EOF) break;
fputc(c,fw);
}
fclose(fw);
pclose(f);
}
return 0;
}