现在的位置: 首页 > 11 文件处理 > 基础课程 > 正文

scanf 和它的兄弟

2011年05月03日 11 文件处理, 基础课程 ⁄ 共 2167字 ⁄ 字号 暂无评论
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
int main(int argc, char *argv[])
{
    int a, b,result;
    char op;
 
    scanf("%d%c%d", &a,&op,&b);
    switch(op) {
    case '+':
        result =a+b;
        break;
    case '-':
        result =a-b;
        break;
    case '*':
        result =a*b;
        break;
    case '/':
        result =a/b;
        break;
    case '%':
        result =a%b;
        break;
    default:
        break;
    }
    printf("%d\n", result);
 
    return 0;
}

第7行和第8行表示从文件 1.in.txt 中读取数据,scanf 也变成了 fscanf
"rb" 的意思是 read binary,表示读取二进制文件
"wb"的意思是 write binary,表示写入二进制文件

不要忘了第32行,来关闭文件。

文件 1.in.txt 的内容可以是:

1
2
3
4
5
3+4
15/6
17%4
9-6
9*7

当你确认程序已经没有任何问题时,就可以提交你的程序了,这时就不要从文件 1.in.txt 中读取了,而是从标准输入 stdin 中读取。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
 
int main(int argc, char *argv[])
{
    int a, b,result;
    char op;
 
    while (scanf("%d%c%d", &a,&op,&b)!=EOF) {
        switch(op) {
        case '+':
            result =a+b;
            break;
        case '-':
            result =a-b;
            break;
        case '*':
            result =a*b;
            break;
        case '/':
            result =a/b;
            break;
        case '%':
            result =a%b;
            break;
        default:
            break;
        }
        printf("%d\n", result);
    }
 
    return 0;
}

如果你不想改动程序,可以吗?

答案当然是肯定的。

抱歉!评论已关闭.