#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的初学者,我很欣赏这方面的明确解释.
第一 - 有什么区别
#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中得到一个单独的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指针和转换的基本问题.
我不明白为什么要施放指针?
我只是尝试了这个代码,我为每个选项获得了相同的输出:
#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*
?
我错了吗?
我写下了这个迷你程序:
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的字符串,但为什么它之前没有初始化?
根据这个答案 - 在构造函数之前初始化的变量..
编辑 - 我编辑了代码,所以不相关的代码不会混淆
这段代码中的错误是什么?我有一个错误
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.buf
char指针?有什么问题char *s="abcd"
?谢谢!:)
我刚刚在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)
为什么会出错?谢谢!