我正在开发一个用Microsoft Visual C ++ 2005 Express开发的程序A.exe。它调用另一个在Microsoft Visual Studio 2005 Pro中开发的程序B.exe。 B.exe是由其他人写的。
A.exe将文本文件作为输入,然后将此文本文件传递给B.exe进行进一步处理。
所有程序和输入文件都在同一个文件夹中。
在A.exe中,我有
char filename[1000] = {0};
sprintf(command, "B.exe .\\%s", filename);
system(command);
在B.exe中,我有
CFile finput;
CString infilename;
long dataLength;
infilename = argv[1];
if (!finput.Open(infilename, CFile::modeRead|CFile::typeText))
{
printf("Cannot open file %s (%s)\n", infilename, argv[1]);
exit(0);
}
else
dataLength = (long)finput.GetLength();
当我运行A.exe时,我得到了
Cannot open file . (.\test.txt)
由于某种原因,它只读取argv [1]字符串的第一个字符作为infilename。我试过了完整的目录,例如C:\ ......,我仍然会得到
Cannot open file C (C:\...)
但如果我自己运行B.exe,即
B.exe .\test.txt
程序运行正常。
我不明白这里有什么问题。任何人都可以帮助我吗?
答案 0 :(得分:0)
您是否尝试使用文件名周围的引号?
B.exe ".\test.txt"