2012-05-01 134 views

回答

2

我想出了一个适用于我的解决方案。如果您遇到像我对strcpy所做的那样的问题,可以使用size()来计算字符串的大小,然后使用while循环遍历并将其添加到char数组中。这是最终为我工作的:

假设我们有一个char数组data.name [30]的数据结构成员,并且我们在文件中有两个词组成了名字(第一个和最后一个),我们不能用strcpy将它添加到char数组中。我们也不能使用字符串流,因为它丢失了过程中的姓。该文件中的文本包括由分隔符#(有例外,其中以换行符结束的最后一个字段分隔字段名称字段我用这个。

/* we already declared an ifstream inputFile and opened it. */ 
while(!inputFile.eof()) 
{ 
    string temp; 
    getline(inputFile, temp, '#'); 
    int size=temp.size(); 
    int i=0; 
    while (i<size) 
    { 
     data.name[i]=temp[i]; 
     i++; 
    }  
} 

data.name[i]=0; 
inputFile.close(); 
5

你的意思是strcpy()?我知道没有标准函数叫做strcopy()。另外,如果您使用的是C++,那么如果可能,请使用std::string,因为这会处理复制和其他字符串操作。

+0

是的,这就是我的意思 – user1066524

+0

错误C2664:“。 strcpy':不能将参数2从'std :: string'转换为'const char *' – user1066524

+0

@ user1066524:你应该使用'std :: string' _instead of_' strcpy'和'char *',而不是与之结合使用。 – ildjarn

相关问题