在可变大小的字符串数组中,如果输入来自 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
和>>
这个程序运行良好:
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] 不可行为啥?的主要内容,如果未能解决你的问题,请参考以下文章