C ++双字符数组分隔符

时间:2014-04-16 18:11:26

标签: c++ c character

我正在尝试使用以下代码将一些名字输入到双字符数组中:

int main(void) 

char firstName[4][10];
Int num = 2;

for (int i=0; i<num; i++) 
  for (int j=0; j<10; j++) 
        cin >> firstName[i] [j] ;
        if(firstName[i] [j] == '.') 
            break;

Return(0);

基本上,我正在寻找一种简单,更好的方法,将名称输入到double char数组中,而不必使用句点结束输入。如果我尝试使用char分隔符。 '/ 0'它仍然会在继续之前尝试填充字符数组的第一个完整行。

1 个答案:

答案 0 :(得分:1)

在编码方面,因为这是C ++,所以不要在二维char数组中存储字符串列表。请尝试使用std::vector<std::string>。并且不要一次读取一个字符的文件;阅读更大的字符块。

如果您可以保证名字中不会嵌入空格,您可以编写cin >> s;之类的内容,其中s的类型为std::string,以便在一个名称中读取整个名称操作

如果名称中可能包含空格,请尝试将文件的整行读入std::string,然后从中提取所需的数据。如果这太复杂了,也许您需要重新考虑输入文件的格式。 (可能下次包含输入文件的样本,以便我们可以看到您认为您想要阅读的内容。)