C++ "Cin" komutu çalışmıyor

Katılım
4 Eylül 2018
Mesajlar
3.015
Makaleler
2
Çözümler
33
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Yapmaya çalıştığım şey string olarak girilen ve aralarında boşluk olan sayıları toplamaya çalışmak. Yani; "1 2 3" olarak girersem sonuç olarak 1+2+3 yani 6 yazdırmasını istiyorum. cin >> s; komutu yerine string s = "1 2 3"; yazsam istediğim gibi çalışıyor. Anlamadığım neden Cin komutunun çalışmadığı. Kodun tamamı aşağıda:

C++:
#include <vector>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;


int main() {
    string s;
    cin >> s;
    vector <string> tokens;
    stringstream check1(s);
    string intermediate;
    int count = 0;
    string numbers_as_str[3];
    int numbers[3];
    while (getline(check1, intermediate, ' ')) {
        tokens.push_back(intermediate);
    }
    for(int i = 0; i < tokens.size(); i++) {
        numbers_as_str[count] = tokens[i];
        cout << tokens[i] << endl;
        count++;
    }
    count = 0;
    for(string num_str : numbers_as_str) {
        numbers[count] = atoi(num_str.c_str());
        count++;
    }
    int sumNumbers = 0;
    for (int num : numbers) {
        sumNumbers += num;
    }
    cout << sumNumbers;
    return 0;
}
Edit: Sorunu çözdüm arkadaşlar tamamıyla benim dokümantasyon okumaktaki üşengeçliğimden ve bilgisizliğimden kaynaklanıyor. cin komutu boşlukları falan dikkate almıyor sadece ilk kelimeyi alıyormuş. getline(cin, s) komutunu kullanınca çalışmaya başladı.
 
Son düzenleme:
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı