これは基本的な質問ですが、私は事前に謝罪してC++に新たなんだ:)ベクトルに保存されている文字列をプリントアウト
私はベクトルに保存されている文字列をプリントアウトしていないようでした。私はstd :: coutとprintfを使いましたが、printfは "プログラムが動作を停止しました"というエラーを出すようです。どこが間違っていますか?
は、ここでのstd :: coutを持つコードです: -
#include <iostream>
#include <cstdio>
#include <vector>
#include <fstream>
using namespace std;
int main(){
int np;
string temp;
scanf("%d", &np);
vector <int> money;
vector <string> names;
for(int i = 0; i< np; i++){
scanf("%s", &temp);
names.push_back(temp);
cout << names[i] << endl;
}
return 0;
}
この
は全く任意の文字列が返されませんでした。修正%s
は
char*
を受け入れるため、あなたが
std::string
を読み取るため
scanf
を使用してはならない
printf("%s", &names[i]);
文字列およびオプションでintを読み込むにはcin <<を使用します。 scanfは動作しません。 %sのchar配列が必要です。 –
私はあなたが良い初心者の本、[ここにいくつかのリストが必要]だと思う(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。 –
もし 'scanf("%s "、&temp);' *が**あなたの顔にコンパイラの警告を投げなかったら、警告レベルをよりペタンティックにする必要があるでしょう。 – WhozCraig