为什么在i=0时cin.getline(d,10);c.push_back();没有成功赋值
#include<bits/stdc++.h>using namespace std;
int main(){
vector<string> s,b,c;
char a,d;//,c;
int i=0,m=0,n=0,j=0,l=0,num={0},max=INT_MIN,k=0;
cin.getline(a,105);
cin>>n;
s.push_back(a);
//cout<<s;
l = strlen(a);
//cin.getline(d,10);
//c.push_back(d);
for(i=0;i<n;i++){
cin.getline(d,10);
c.push_back(d);
//cout<<"c="<<c<<endl;
//cout<<"i="<<i<<endl;
//s.push_back(a);
//cout<<"i="<<i<<" "<<a<<endl;
cout<<"i="<<i<<" "<<d<<endl;
}
cin>>m;
cout<<"m="<<m<<endl;
//cin>>m;
for(i=0;i<m;i++){
cin>>num;
if(max<num){
max = num;
}
}
for(i=1;i<=max;i++){
for(j=0;j<n;j++){
for(k=0;k<l;k++){
if(a==c){
a=c;
}
}
}
s.push_back(a);
}
for(i=0;i<m;i++){
cout<<s]<<endl;
}
/*for(i=0;i<m;i++){//表示有多少个
cin>>k;
//s = a;
cout<<"s="<<s<<endl;
a = s;
for(j=0;j<k;j++){//表示要多少次的循环
// cout<<"j="<<j<<endl;
for(x=0;x<n;x++){//进行c的循环
for(y=0;y<l;y++){//表示对一个字符串内部的操作
if(a==c){
a=c;
}
}
}
//s.push_back()
}
s.push_back(a);
cout<<a<<endl;
}
*/
return 0;
} 在你的代码中,`cin.getline(d,10);` 和 `c.push_back();` 没有成功赋值的原因可能有以下几点:
1. **字符数组未初始化**:`char a, d;` 只声明了单个字符变量,而 `cin.getline()` 需要一个字符数组来存储输入的字符串。你需要将 `d` 声明为字符数组,例如 `char d;`。
2. **`push_back()` 用法错误**:`c.push_back();` 缺少参数。`push_back()` 是用于向 `vector` 中添加元素的方法,你需要在括号中指定要添加的元素。
3. **`vector` 类型未指定**:`vector s, b, c;` 中的 `vector` 没有指定类型。你需要指定 `vector` 的类型,例如 `vector<char> s, b, c;`。
以下是修正后的代码片段:
#include <iostream>
#include <vector>
#include <climits>
using namespace std;
int main() {
vector<char> s, b, c;
char a, d;
int i = 0, m = 0, n = 0, j = 0, l = 0, num = 0, max = INT_MIN, k = 0;
cin.getline(a, 105);
cin >> n;
s.push_back(a); // 假设你想将第一个字符添加到向量中
cin.getline(d, 10);
c.push_back(d); // 假设你想将第一个字符添加到向量中
// 其他代码逻辑
}
请根据你的具体需求调整代码。确保在使用 `getline` 时,目标变量是一个字符数组,并且在使用 `push_back` 时,提供正确的参数。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]