在可变大小的字符串数组中,如果输入来自 0 索引 A[0] 不可访问;如果输入来自索引 1,A[0] 和 A[1] 不可行为啥?

Posted

技术标签:

【中文标题】在可变大小的字符串数组中,如果输入来自 0 索引 A[0] 不可访问;如果输入来自索引 1,A[0] 和 A[1] 不可行为啥?【英文标题】:In Array of strings of variable size, If input is taken from 0 index A[0] is not accessible; if input is from index 1, A[0] and A[1] not acesible Why?在可变大小的字符串数组中,如果输入来自 0 索引 A[0] 不可访问;如果输入来自索引 1,A[0] 和 A[1] 不可行为什么? 【发布时间】:2022-01-19 07:45:26 【问题描述】:

A[0] 不可访问。

为什么?以及如何解决这个问题

如果输入来自索引 1,A[0] 和 A[1] 不可用,为什么?

#include<bits/stdc++.h>

using namespace std;

int main()
    
   int n;   
   cin>>n;    
   string A[n];    
   for(int i=0;i<n;i++)    
   getline(cin,A[i]);     
   for(int i=0;i<n;i++)     
   cout<<A[i]<<endl;     

   cout<<"first is "<<A[0]; 
   return 0;     

【问题讨论】:

【参考方案1】:

Here有一个解释为什么你不应该同时使用getline&gt;&gt;

这个程序运行良好:

int n;
cout << "n: ";
cin >> n;
string A[n];
for (int i = 0; i < n; i++) 
    cout << i << ": ";
    cin >> A[i];

for (int i = 0; i < n; i++)
    cout << A[i] << endl;

cout << "first is " << A[0];
return 0;

【讨论】:

以上是关于在可变大小的字符串数组中,如果输入来自 0 索引 A[0] 不可访问;如果输入来自索引 1,A[0] 和 A[1] 不可行为啥?的主要内容,如果未能解决你的问题,请参考以下文章

C语言如何定义一个可变大小的数组

java中容器类型的数据

使用流在 C++ 中读取可变长度输入

JAVA-数组

Java动态数组

如何在 C 中声明可变大小的二维数组?