• c++ cin 读入txt的问题


    源程序

    #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还是有问题。

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

     fc a.txt b.txt比较不同

    可能有空格

  • 相关阅读:
    UIWindowLevel详解 一片
    关于博客的原创和转载的一点儿看法 一片
    UIViewController生命周期学习笔记 一片
    UINavigationController详解 一片
    UIColor,CGColor,CIColor三者间的区别和联系 一片
    subview事件响应范围 一片
    viewWithTag获取subview规则详解 一片
    FirstResponder 释放问题 一片
    UITabBarController详解 一片
    做IOS开发这一年 一片
  • 原文地址:https://www.cnblogs.com/lqerio/p/11680254.html
Copyright © 2020-2023  润新知