2017-11-27 25 views
0

私のコードを見てください。複数の入力から複数の行を処理する

#include <iostream> 

using namespace std; 

int main() 
{ 
    int oobjid;   /* Used int to receive the old id of the   
         object. This will get dumped afterwards */ 
    string line;  // For receiving rest of the line data. 
    int srange;  //starting range 
    int nobjid; 


    cout << "Enter the start id number:" << endl; 
    cin >> srange; 

    cout << "Enter the line" << endl; 
    cin >> oobjid; 
    getline(cin,line); 
    cout << "Entered Stating point number: "<< srange 
    <<endl; 

    while(line.length() != 0){ 


    nobjid = srange; 


    cout << "Updated Line: "<< nobjid << line << endl; 

    srange++; 

    } 

    return 0; 
    } 

入力がこのプログラム(ちょうど基本構造)

14913, PLS_buoy1, PLS_buoy, 299, 0 
14915, LOD_PLS_buoy1, LOD_PLS_buoy, 800, 128 
14916, PLS_speedlimit25, pls_speedlimit25, 100, 128 
14917, PLS_speedlimit55, PLS_speedlimit55, 100, 128 
14918, PLS_speedlimit75, PLS_speedlimit75, 100, 128 
14919, PLS_constructcrane, PLS_constructcrane, 100, 128 
14920, PLS_constructhole, PLS_constructholes, 100, 128 
14921, PLS_constructhole1, PLS_constructholes, 100, 128 
14922, pls_diner, pls_diner, 100, 128 

私の質問を説明する方法:(あなたが入力を見てきたよう

まあ、数の桁があります私のプログラムで整数として入力した10桁の数字は含まれていないので、その長さの余裕はありません。残りの行については、getline(cin、line)を入力として残しておきました(どのくらいの文字が含まれているのでしょうか?)。最初の数字は数字の順番で始まり数字のユーザー入力と置き換えられます。プログラムはユーザーが入力した値を、次に行の残りの部分を印刷します。 2行目は値を入力しますが、今回は最初の行番号が22334だった場合は22334 + 1 = 22335となり、残りの2行目は貼り付けられます。

は、私の知る限り、プログラムをやったとして、1行目から入力を受け取り、数字を更新し続けるが、残りの行は、入力された第二または第三行から変更されていません。

は、私は何を意味することは、プログラムがちょうど1行目、2回目からの入力を受け取り、他の線が入力されていないことです。私はline2、line3、line4のような異なる変数を使うことができますが、問題はこの行数に制限がないことです。 10行、100行、または1000行もあります。

これには解決策がありますか?前もって感謝します。私の悪い英語&長い記事のため

そしてSRY、私は誰もがプログラムが何をすべきかを明確にしましょうたかったよう。

編集:今、私はこの問題を解決するために管理してきましたが、最後に入力された行は、私は再びEnterキーを押すまで処理していない中です。

+1

デバッガでこれを実行すると、問題の内容が表示されます。 –

+0

プログラムは私にクラッシュを与えません。それは動作しますが、私が望む方法ではありません。 –

+0

はい、それはデバッガのためのものです。 –

答えて

0

あなたはしばらく(){...}ループ内の入力を移動shoul。現在のところ、印刷物しかありません。

関連する問題