使用C ++中的空格定义和输入字符串数组

时间:2017-09-22 08:04:11

标签: c++ arrays string debugging

必须定义一个字符串数组并将其作为输入,以便在C ++中查找输入中的某些特定字符。我已获得最大行数products = DB::table('products') ->leftJoin('destinations','products.id','=','destinations.product_id') ->get(); 和每行n中的最大字符数。

c

此代码不起作用,因为string lines[n]; for (int i=0; i<2000; i++) cin.get(lines[i],c); 的参数不匹配。

2 个答案:

答案 0 :(得分:0)

因此将其定义为字符数组可以正常工作。

char lines[n][c]={'\0'};
for (int i=0; i<n; i++) 
    cin.getline(lines[i],c);

for(int i=0; i<n && lines[i]; i++) {
    for(int j=0; j<c && lines[i][j]; j++)
        cout << lines[i][j];
    cout << endl;
}    

答案 1 :(得分:0)

您未提供maximum number of lines n and maximum number of characters in each line c

istruction lines[n]只是声明一个char大小n的数组。然后在循环内部,您只使用std::cin中的 1 字符存储您的std ::,因为lines[i]只能存储 1 char(这是它的定义)。

解决方案如下:

std::string lines[n];
for (int i = 0; i < n; i++)
{
    std::getline(std::cin, lines[i]);

    if (lines[i].size() > c)
       lines[i].resize(c); // to read only c characters
}