小编Dvi*_*aim的帖子

在C语言中究竟是什么\ r \n?

#include <stdio.h>

int main()
{
  int countch=0;
  int countwd=1;

  printf("Enter your sentence in lowercase: ");
  char ch='a';
  while(ch!='\r')
  {
    ch=getche();
    if(ch==' ')
      countwd++;
    else
      countch++;
  }

  printf("\n Words =%d ",countwd);

  printf("Characters = %d",countch-1);

  getch();
}
Run Code Online (Sandbox Code Playgroud)

这是我遇到的程序\r.它在这里的作用究竟是什么?我是C的初学者,我很欣赏这方面的明确解释.

c

13
推荐指数
3
解决办法
10万
查看次数

\ xFF和0xFF之间的差异是什么?

第一 - 有什么区别

#define s 0xFF
Run Code Online (Sandbox Code Playgroud)

#define s '\xFF'
Run Code Online (Sandbox Code Playgroud)

第二 - 为什么第二行等于-1?3 - 为什么在我尝试之后(在'\ xFF'的情况下)

unsigned char t = s;
putchar(t);
unsigned int p = s;
printf("\n%d\n", p);
Run Code Online (Sandbox Code Playgroud)

输出是

(blank)
-1
Run Code Online (Sandbox Code Playgroud)

谢谢:)

c hex

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

如何从C中的文件中获取separeated int

我怎样才能在C中得到一个单独的int来自像"1,2,3 ,,, 5,6"这样的文件(到一个数组或一个接一个)而没有得到像""或","这样的垃圾? (,,,是一种可能的情况)我想过strtok但它只处理字符串,我不知道文件的长度是多少,所以可能fgets不是解决方案..我试过这个:

   fp=fopen("temp.txt","r");
   if(fp==NULL)
   {
        fprintf(stderr,"%s","Error");
        exit(0);
   }
   while(fscanf(fp,"%d",&num)!=EOF)
   {
      printf("first num is %d",&num);
   }
Run Code Online (Sandbox Code Playgroud)

但我认为这将是一个问题,因为未知的文件大小和垃圾问题.你怎么看?

谢谢!!

c int file scanf

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

为什么要投指针?

我有一个关于C指针和转换的基本问题.
我不明白为什么要施放指针?

我只是尝试了这个代码,我为每个选项获得了相同的输出:

#include <stdio.h>

int main(void)
{
    int x = 3;
    int *y = &x;
    double *s;

    option 1: s = (double*)y;
    option 1: printf("%p, %d\n", (int*)s, *((int*)s));
    option 2: s = y;
    option 2: printf("%p, %d", s, *s);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么我必须这样做s = (double*)y
直观地说,所有变量的地址都是相同的.差异应该是从该地址读取多少字节.此外,关于打印 - 如果我使用%d它将自动采取int.

为什么我需要把它作为一个int*
我错了吗?

c pointers casting

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

构造函数何时初始化?

我写下了这个迷你程序:

A 类:

public class A
{

    public A()
    {
        System.out.println(getS());
    }

    public String getS() { return s;}


}
Run Code Online (Sandbox Code Playgroud)

B 类:

public class B extends A
{
    private String s = "hello2";

    public String getS() { return s;}

}
Run Code Online (Sandbox Code Playgroud)

main:

public static void main(String[] args)
{
    B b = new B();
}
Run Code Online (Sandbox Code Playgroud)

并打印:

null
Run Code Online (Sandbox Code Playgroud)

这是为什么?
我知道打印的字符串是B的字符串,但为什么它之前没有初始化?

根据这个答案 - 在构造函数之前初始化的变量..

编辑 - 我编辑了代码,所以不相关的代码不会混淆

java string inheritance constructor initialization

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

C - strcat出错

这段代码中的错误是什么?我有一个错误

error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead
Run Code Online (Sandbox Code Playgroud)

这是什么意思?另一个问题 - 结构和函数原型的声明是合法的吗?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
    char *join(char *, char *);
    printf("%s \n", join("duck", "soup"));   
}

char *join(char *s1, char *s2)
{
    struct {
        char buf[256];
    } string;
string.buf = "abcd";\\ new line. error l-value.
    return strcat(strcpy(string.buf, s1), s2);
}
Run Code Online (Sandbox Code Playgroud)

新行 - 为什么会出错?不是string.bufchar指针?有什么问题char *s="abcd"?谢谢!:)

c string struct strcat strcat-s

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

为什么a ++ = 5是错误的?

我刚刚在c中编写了一个代码

#include <stdio.h>

int main()
{
    int a=0;
    option1: a++=5;
    option2: ++a=5;
    printf("%d\n",a);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但它没有编译错误

lvalue required as left operand of assignment
Run Code Online (Sandbox Code Playgroud)

为什么会出错?谢谢!

c operator-precedence

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