小编mle*_*boy的帖子

什么更有效,从文件中逐字读取或一次读取一行并使用C分割字符串?

我想在C中开发一个应用程序,我需要从磁盘上的文件中逐字检查.我被告知,从文件中读取一行然后将其拆分为单词会更有效,因为需要更少的文件访问.这是真的吗?

c file processing-efficiency

6
推荐指数
2
解决办法
318
查看次数

无效的预处理令牌错误

我正在尝试编译包含Middlc.h的文件Args.c.Middlc.h错误地给出了以下错误.

enter code here
Middlc.h:23:1: error: pasting "*" and "ArgList" does not give a valid preprocessing token
Middlc.h:24:1: error: pasting "*" and "CandidateList" does not give a valid preprocessing token
Middlc.h:25:1: error: pasting "*" and "Decl" does not give a valid preprocessing token
Middlc.h:26:1: error: pasting "*" and "DeclList" does not give a valid preprocessing token
Middlc.h:27:1: error: pasting "*" and "ExcList" does not give a valid preprocessing token
Middlc.h:28:1: error: pasting "*" and "Field" does not give a valid …
Run Code Online (Sandbox Code Playgroud)

c token c-preprocessor

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

以C sizeof(a)/ sizeof(a + 1)计算数组中元素的数量?

    int a[] = {1,2,3,4};
    printf("%d",sizeof(a)/sizeof(a+1));
Run Code Online (Sandbox Code Playgroud)

输出:4

有谁能解释一下?

c

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

在哪种方式中,字符数组在本地分配内存?

这是我写的代码,

    char *foo();

    void main()
    {
      char *str=foo();
      strcpy(str,"Holy sweet moses! I blew my stack!!");
      printf("%s",str);
    }

    char * foo()
    {
      char str[256];
      return str;
    }
Run Code Online (Sandbox Code Playgroud)

当我在函数foo()中使用char数组时,main()函数中的strcpy不会将字符串复制到str中.但是,当我在函数foo()中使用int数组时,main()strcpy成功复制.

   int str[256]; //in function foo
Run Code Online (Sandbox Code Playgroud)

产量

   Holy sweet moses! I blew my stack!!
Run Code Online (Sandbox Code Playgroud)

如果

   char str[256]; //in foo()
Run Code Online (Sandbox Code Playgroud)

输出:没事!

c

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

解释这个C程序的输出

C拼图中找到此代码.

#include<stdio.h>

int main()
{
  int a=1;
  switch(a)
  {   int b=20;
      case 1: printf("b is %d\n",b);
              break;
      default:printf("b is %d\n",b);
              break;
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

 b is 51
Run Code Online (Sandbox Code Playgroud)

似乎无法理解这个输出..

c initialization

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

这怎么可能?

在下面的代码中,甚至在main函数的块开始之前就有声明.这是允许的吗?

long long n,u,m,b;
main(e,r)
    char **r; //<<<Is this possible???
{
    for( ; n++ || (e=getchar()|32)>=0 ; b="ynwtsflrabg"[n%=11]-e?b:b*8+n)
        for( r=b%64-25 ; e<47&&b ; b/=8)
            for( n=19; n ; n["1+DIY/.K430x9G(kC["]-42&255^b||(m+=n>15?n:n>9?m%u*~-u:~(int)r?n+!(int)r*16:n*16,b=0))
            u=1ll<<6177%n--*4;printf("%llx\n",m);
}
Run Code Online (Sandbox Code Playgroud)

资料来源:我在ioccc.org上找到了这个代码

c

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