我在main.cpp中做的是读取文本文件两次:一次从每个路径名中删除'\',然后再次将文件的原始名称提供给我的实现文件中的SetPath()。
// This a read file sub-routine called in the main function.
// Its purpose was intentionally set out to read the file, and pass information
// to functions to MyClassFile Implementational file.
// global varaible to have the file spec.
char MyClass::List_[ ARRY_SZ ] = {};
int main()
{
..
inFile.open( MyClass::List_, ios::in );
while ( inFile.peek() != '\n' )
{
inFile.get( ch );
if ( ch == 92 )
count++;
}
inFile.clear();
inFile.close();
inFile2.open( MyClass::List_, ios::in );
while ( inFile2.peek() != EOF )
{
for( unsigned short i = 0 ; i < count; i++ )
{
inFile2.getline( tmpArray, ENTRY_SZ, 92 );
}
inFile2.getline( tmpArray, ENTRY_SZ, '\n' );
MyObject = new MyClass( tmpArray ); // Name W/O Path
LinkedObject->AddLink( MyObject );
lineCount++;
}
while ( inFile2.peek() != EOF )
{
inFile2.getline( tmpArray, ENTRY_SZ, '\n' );
MyObject->GetPath( tmpArray );
}
inFile2.clear();
inFile2.close();
}
文本文件的格式为:
C:/temp/fileID
C:/temp/FileID2
我需要将名称传递给复制构造函数。 我需要将仍在文本文件中的完整路径名传递给我的实现文件中的MyClass :: GetPath()函数。
有没有办法在不读取文件两次的情况下执行此操作? 我希望你能看到我在这里尝试做什么。 我可能只是回到开头或类似的东西
答案 0 :(得分:8)
重述问题:
我可以不重新读取文件吗?
答案是肯定的。
这稍微多一点字符串操作 - 它大大减少了文件操作,这就是性能成本。
始终使用'\\'
而不是92。