在 C、C++ 和 Python 中,输入以文件结束字符 (EOF) 结束
Input is ended with an end-of-file character (EOF) in C, C++ and Python
我几天前开始学习Python语言。我的python功力不算太高。但是无论我学到什么,我都想解决UVA Online Judge问题
当我尝试解决问题时 272 TEX 引用 当用户输入由文件末尾给出时,我遇到了终止循环的问题。
检查我在 python 中的(100% 逻辑已解决)代码(while 循环终止除外)
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,因此您可以使用带有 break 语句的 try …except 块:
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
我几天前开始学习Python语言。我的python功力不算太高。但是无论我学到什么,我都想解决UVA Online Judge问题
当我尝试解决问题时 272 TEX 引用 当用户输入由文件末尾给出时,我遇到了终止循环的问题。
检查我在 python 中的(100% 逻辑已解决)代码(while 循环终止除外)
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,因此您可以使用带有 break 语句的 try …except 块:
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