我正在尝试将字符串数组作为输入,但它给出了运行时错误
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main()
{
string str[500];
int n;
cin>>n;
for(int i=0;i<n;i++)
scanf("%s",&str[i]); \\works fine with cin but gives error using scanf
return 0;
}
处理终止,状态为-1073741510(0分钟,10秒(秒))
与
则会出错cin
一起正常使用,但如果我使用scanf
有人可以告诉我为什么会出现这样的错误
该错误意味着什么 为什么在使用
时它不会出错cin
我正在使用代码块13.12
答案 0 :(得分:0)
string
是C ++类型,您应该使用C ++ I / O cin
和cout
。如果您真的想使用C I / O,可以使用c_str
方法获取char *
后面的C string
。
答案 1 :(得分:0)
scanf()
旨在与C风格的字符串(又名char *
或char[]
)一起使用,它应该是
char myString[101];
char* myOtherString = (char*)malloc(101);
scanf("%100s", myString);
scanf("%100s", myOtherString);
free(myOtherString);
没有理由在std::string
上使用它。
答案 2 :(得分:0)
您正在使用C ++来利用cin 头文件避免使用非空指针和char数组
CIN&GT;&GT;有运算符重载和用户现代字符串类