import warc
import boto
for line in sys.stdin:
line = line.strip()
#Connect to AWS and read a dataset
conn = boto.connect_s3(anon=True, host='s3.amazonaws.com')
pds = conn.get_bucket('commoncrawl')
k = Key(pds)
k.key = line
f = warc.WARCFile(fileobj=GzipStreamFile(k))
skipped_doc = 0
for num, record in enumerate(f):
# analysis code
我无法让这个程序做我想做的事。我要求用户输入整数。如果该数字介于1-20之间,我希望它将该数字吐出来。如果不是,我希望它为“y”吐出值。我不想使用“if”语句。
答案 0 :(得分:2)
您需要更改
scanf("%d ", &x);
到
scanf("%d", &x); // remove trailing whitespace
^^
因为输入需要与提供的格式字符串的完全匹配。
否则,要匹配尾部换行符(空格),您还需要明确提供空白和一个终止条件。 (示例:按 ENTER ,然后输入任何其他非空格,再按 ENTER )。
答案 1 :(得分:1)
scanf中有一个空间,因为您面临一个问题。请删除空格并尝试运行代码。谢谢:))
#include <stdio.h>
int x, y;
y = 999;
int main()
{
printf("\nEnter a whole number: ");
scanf("%d", &x);
y = ((x >= 1) && (x <= 20)) ? x : y;
printf("The value is %d ", y);
return 0;
}
答案 2 :(得分:0)
我执行了上面的代码,我得到了以下错误:
/temp/file.cpp:4:1:错误:'y'没有命名类型
Y = 999;
^
编译失败
以下变更解决了这个问题: int x,y = 999;