小编kar*_*hik的帖子

如何通过fscanf找到EOF?

我在fscanf()的帮助下通过文件读取矩阵.我怎样才能找到EOF?即使我试图在arr []中捕获的每个字符串后找到EOF,那么我也无法找到它.

在计数的帮助下,我正在读取输入文件

-12 23 3

1 2 4

int main()
{
    char arr[10],len;
    int count=0;

    FILE *input= fopen("input.txt", "r");

    while(count!=7)
    {   
           fscanf(input,"%s",arr);
          //storing the value of arr in some array.
                   len=strlen(arr);
           count++;

           if(arr[len+1]==EOF)
           printf("\ni caught it\n");//here we have to exit.
    }
return 0;
}
Run Code Online (Sandbox Code Playgroud)

而不是计数我想通过EOF退出循环.怎么解决?

c scanf

17
推荐指数
2
解决办法
8万
查看次数

当Windows可以访问的总内存也限制为4GB时,Windows如何为多个进程分别提供4GB的地址空间

当Windows可以访问的总内存也限制为4GB时,Windows如何为多个进程分别提供4GB的地址空间.

我在Windows内存管理中找到的上述问题的解决方案(撰写:Pankaj Garg)

解:

要实现此目的,Windows使用x86处理器(386及更高版本)的功能,称为分页.分页允许软件使用与物理内存地址不同的内存地址(称为逻辑地址).处理器的寻呼单元透明地将该逻辑地址转换为物理地址.这允许系统中的每个进程都有自己的4GB逻辑地址空间.

任何人都可以帮助我以更简单的形式理解它吗?

windows operating-system memory-management process virtual-address-space

3
推荐指数
1
解决办法
1597
查看次数

为什么降低优先级运算符首先执行?

可能重复:
运算符优先级问题

我们知道前缀的优先级大于"LOGICAL AND"(&&),"LOGICAL AND"的优先级大于"LOGICAL OR"(||).

以下程序似乎违反了它:

int main()

{
    int i=-3,j=2,k=0,m;
    m=++i||++j&&++k;
    printf("%d %d %d %d",i,j,k,m);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果优先级++大于&&,||则应首先执行所有前缀.在此之后i=-2,j=3,k=1,然后&&将首先执行.为什么输出显示:-2 2 0 1

该程序的行为在ubuntu v12.04上也是相同的.

c operator-precedence

0
推荐指数
1
解决办法
342
查看次数