码迷,mamicode.com
首页 > 编程语言 > 详细

c++ cin 读入txt的问题

时间:2019-10-15 21:03:47      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:源程序   结束   put   ack   img   style   using   令行   tput   

源程序

#include <iostream>
using namespace std;

struct Stack
{
    int tos;
    int stackarray[1000];
};

Stack S;

void push(int a) {
    S.tos++;
    S.stackarray[S.tos] = a;
}

void pop() {
    if (S.tos == -1)
        cout << "false" << " ";
    else
    cout << S.stackarray[S.tos] << " ";
    S.tos--;
}
int main()
{
    S.tos = -1;
    string cmd;
    cin >> cmd;
    if (cmd == "pop") {
        cout << "false";
        return 0;
    }
    int number;
    cin >> number;
    push(number);
    while(S.tos >= -1) {
        cin >> cmd;
        if (cmd == "pop")
            pop();
        else if (cmd == "push") {
            cin >> number;
            push(number);
        }
    }
    return 0;
}
//a.exe <A-1-in.txt >myoutput.txt

 

技术图片

 

 

 

cmd

技术图片

 

 

 

技术图片

 

 

原因是cin遇到txt文件终止符EOF后仍未结束,具体可能与缓冲有关,还是在cin pop导致

 

在while循环加入判断

#include <iostream>
using namespace std;

struct Stack
{
    int tos;
    int stackarray[1000];
};

Stack S;

void push(int a) {
    S.tos++;
    S.stackarray[S.tos] = a;
}

void pop() {
    if (S.tos == -1)
        cout << "false" << " ";
    else
    cout << S.stackarray[S.tos] << " ";
    S.tos--;
}
int main()
{
    S.tos = -1;
    string cmd;
    cin >> cmd;
    if (cmd == "pop") {
        cout << "false";
        return 0;
    }
    int number;
    cin >> number;
    push(number);
    while(S.tos >= -1) {
        if(cin.eof())
        break;
        cin >> cmd;
        if (cmd == "pop")
            pop();
        else if (cmd == "push") {
            cin >> number;
            push(number);
        }
    }
    return 0;
}
//a.exe <A-1-in.txt >myoutput.txt

 

 

之后

cmd

技术图片

技术图片

 

 

注意这样做,命令行输入^Z还是有问题。

技术图片

 

 

应该还是缓冲区问题。具体以后再说吧

 

c++ cin 读入txt的问题

标签:源程序   结束   put   ack   img   style   using   令行   tput   

原文地址:https://www.cnblogs.com/lqerio/p/11680254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!