1

使用しているデバッガー(VisualC++およびBloodshedDevC ++)で、入力されるはずのコード行などをスキップするだけのコードに問題があります。コードは次のとおりです。

for(x = 0; x < TASKLIMIT; ++x)
{
    cout<<"Enter the name of a task: ";
    getline(cin, task[x].name);
    cout<<"Enter the priority of the task: ";
    cin>>task[x].priority;
    while (task[x].priority > 10 || task[x].priority < 1)
    {
        cout<<"Enter a number from 1-10: ";
        cin>>task[x].priority;
    }
    cout<<"Enter the estimated completion time of the task: ";
    cin>>task[x].completion;
    cout<<"Enter the deadline of the task: ";
    cin>>task[x].deadline;
}

問題は時々最初にラインを動かしますそれはラインにありました

cin>>task[x].deadline; 

その後、次の場所に移動しました。

getline(cin, task[x].name);

forループの2回目の反復に到達したとき

助けていただければ幸いです

4

2 に答える 2

0

リリースモードとデバッグモードのどちらを使用しますか?リリースモードの場合、アセンブリコードが最適化されます。そのコードを使用してデバッグする場合、常に行間を移動するわけではありません。

于 2013-03-22T02:43:34.313 に答える
0

次のコードを変更してみてください。

cin.ignore();
cin.sync();

cout<<"Enter the name of a task: ";
getline(cin, task[x].name);

それがあなたにとってどのように機能するかを見てください。私はいつも同様の罠に陥りますが、通常はバッファをクリアすることで解決できます。

于 2015-05-04T00:24:50.697 に答える