输入以 C、C++ 和 Python 中的文件结束字符 (EOF) 结尾



我几天前开始学习Python语言。我在python方面的技能不是太高。但无论我学到什么,我都想解决UVA在线判断问题

当我尝试解决问题时 272 TEX 报价,我遇到了一个问题,即当用户输入由文件末尾给出时终止循环。

在 python 中检查我的(100% 逻辑已解决(代码(循环终止时除外(

flag = True;
while True: #I want That loop is terminated when getting EOF
    txt = input()
    for var in txt:
        if var == '"':
            if flag:
                print("``", end='')
            else:
                print("''", end='')
            flag = not flag
        else:
            print(var, end='')
    print(end='n')

C 中检查我接受的已解决代码,它是带有文件结尾的终止循环,由 Ctrl + Z 给出

#include <stdio.h>
int main()
{
    int flag = 1;
    char txt;
    while((txt = getchar()) != EOF){
        if(txt == '"'){
            if(flag)
                printf("``");
            else
                printf("''");
            flag = !flag;
        }else
            putchar(txt);
    }
    return 0;
}

另外,C++

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    char txt;
    bool flag = true;
    while((txt = getchar()) != EOF){
        if(txt == '"'){
            if(flag)
                cout << "``";
            else
                cout << "''";
            flag = !flag;
        }else
            cout << txt;
    }
    return 0;
}

EOF 而输入会引发 EOFError 因此您可以使用 try ...除了带有中断语句的块:

flag = True;
while True: #I want That loop is terminated when getting EOF
    try:
        txt = input()
        for var in txt:
            if var == '"':
                if flag:
                    print("``", end='')
                else:
                    print("''", end='')
                flag = not flag
            else:
                print(var, end='')
        print(end='n')
    except EOFError:
        break

最新更新