小编mwl*_*low的帖子

++ nc vs nc = nc + 1

在K&R Ch 1中:

该语句++nc提供了一个新的运算符,++表示递增1.你可以改写nc = nc + 1,但++nc更简洁,效率更高.

预增量何时比替代方案更有效?对于大多数事情,至少,两者的程序集都是add(edit:或inc)指令.它们何时不同?

c pre-increment

4
推荐指数
1
解决办法
359
查看次数

fgetc null终止符

我正在K&R做一个练习:

编写一个程序detab,用空格中适当数量的空格替换输入中的选项卡到下一个制表位.

这是我到目前为止(没有错误检查文件):

#include <stdio.h>
#define tab 2
#define MAX_LENGTH 1000
int main(int argc, char **argv)
{
    FILE *fp = fopen(argv[1], "r+");    
    int c, n;
    char buffer[MAX_LENGTH + 1];
    for (n = 0; n < MAX_LENGTH && (c = fgetc(fp)) != EOF; ++n) {
        if (c == '\t') {
            for (int x = 0; x < tab; ++x)
                buffer[n++] = ' ';
            --n;
        }
        else
            buffer[n] = c;
    }
    //buffer[n] = '\0';
    //rewind(fp);
    //fputs(buffer, fp);
    printf("%s\n", buffer);
    fclose(fp);
    return 0; …
Run Code Online (Sandbox Code Playgroud)

c null-character fgetc

4
推荐指数
1
解决办法
886
查看次数

标签 统计

c ×2

fgetc ×1

null-character ×1

pre-increment ×1