小编Moh*_*bil的帖子

程序跳过cin.getline()

我制作了这个程序,它得到了用户的地址,名称和工作.然后它将所有内容放入一个字符串并输出该字符串.(我知道有更好的方法可以做到这一点)

char str[600];
char adrs[200];
char name[10];
char wrk[200];
cout<<"Enter your name and press ENTER: ";
cin.getline(name,10);
cout<<"\nEnter your adress and press ENTER:";
cin.getline(adrs,200);
cout<<"\nEnter your workplace and press ENTER:";
cin.getline(wrk,200);
strcpy(str,"My name is ");
strcat(str,name);
strcat(str,"\nand i live at ");
strcat(str,adrs);
strcat(str, "\nI also work at ");
strcat(str, wrk); strcat(str, "\n\n");
cout<<str<<endl;
Run Code Online (Sandbox Code Playgroud)

在这里,当我写一个超过10个字符的名称时程序确实采用了用户输入的前9个字符,但是之后它会跳过程序中的所有下一个字符cin.getline()并转到输出str并结束程序.

为什么会发生这种情况以及如何解决?

c++ arrays string character-arrays

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

CPU能理解编程语言吗?

编程书有时会指出CPU不理解C++语言(或任何高级编程语言).所有C++语句必须先转换为机器代码才能执行.但谁做翻译?

哦,他们说,这并不神秘; 翻译由编译器完成 - 编译器本身就是一个计算机程序.但在那种情况下,计算机正在进行翻译.

这在我看来是一个无法解决的悖论.CPU(计算机核心的"大脑")不理解C++这个词,但它执行C++和它自己的内部语言之间的转换.这不是一个矛盾吗?

compiler-construction cpu

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

C++:.eof在空文件上

让我们看看这个程序:

ifstream filein("hey.txt");


if(filein.eof()){
    cout<<"END"<<endl;
}
Run Code Online (Sandbox Code Playgroud)

这里"hey.txt"是空的.所以这里的if条件被认为应该是真的但它不是

尽管文件为空,为什么eof不返回true?

如果我if在eof返回true 之前添加了这个,尽管arr仍然是空的并且文件仍为空,因此两者都保持不变

char arr[100];
filein.getline(arr,99);
Run Code Online (Sandbox Code Playgroud)

c++ fstream eof

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

C++:如何使用命令行参数

我知道要使用命令行参数,我必须这样做.

int main(int argc, char* argv[])

现在我读到的关于接受命令行参数的大部分文档都解释了这种情况,如下所示:

命令行参数在DOS或Linux等命令行操作系统中的程序名后面给出,并从操作系统传递给程序.

所以我知道打开我的程序的唯一方法就是像我一样打开它,开始调试或打开exe文件

现在看来,要使用命令行参数,程序必须以不同方式打开,使用命令行(例如DOS /命令提示符),然后在其后面写入参数.

所以我的问题是

如何使用命令行打开我的程序,如何在程序名称后输入参数?

c++ command-line dos command-line-arguments

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

用fstream寻找和寻求

我注意到这个奇怪的事情

fstream obj(filename , ios::in);
obj.seekp(7);
Run Code Online (Sandbox Code Playgroud)

是相同的

fstream obj(filename , ios::in);
obj.seekg(7);
Run Code Online (Sandbox Code Playgroud)

seekgseekp执行相同的操作并导致相同的结果,虽然我只指定了ios :: in flag

为什么他们都与fstream合作?和之间有什么区别seekpseekg使用fstream的?

c++ fstream

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

按指针制作字符串

我已经知道指针指向一个内存地址,所以我可以用它来改变在该地址设置的值.像这样:

int *pPointer = &iTuna;
Run Code Online (Sandbox Code Playgroud)

pPointer这里有内存地址iTuna.所以我们可以pPointer用来改变价值iTuna.如果我打印pPointer内存地址被印刷,如果我打印*pPointer,则该值在iTuna获取打印

现在看这个程序

    char* pStr= "Hello !";
cout<< pStr << endl;
cout<< *pStr << endl;
system("PAUSE");
return 0;
Run Code Online (Sandbox Code Playgroud)

这里有很多我不理解的东西:

  1. 在"你好!" 每个字母分别存储,指针保存一个存储器地址.那么如何pStr指向所有字母.

  2. 当我打印出来pStr时打印你好!,而不是内存地址.

  3. 当我打印出来时*pStr,打印出的H只是不是所有pStr指向的东西.

我真的无法理解这些是我的担忧.我希望有人可以向我解释这个广告是如何帮助我理解的

c++ string pointers

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

C++:使用指针与cin.getline()

我有这个程序不工作.

char arr[200] ;
char *p = arr;
cout << "Enter the string and press ENTER: ";
cin.getline(*p,200);
Run Code Online (Sandbox Code Playgroud)

问题可能是因为我使用指针与cin.getline().

我的问题是

是否可以在cin.getline中使用指针?

如果是的话.那怎么样?

如果没有.那么为什么不,以及如何解决这个问题(特别是将字符串传递给函数)?

c++ arrays string pointers cin

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

C++:使用cin.getline()

现在我已经知道cin.getline这样做了.

cin.getline(dest string, number of charecters to put into string);

所以假设这个程序.

char s1[8]="Hellopo";
cin.getline(s1,5);
cout<<s1<<endl;
Run Code Online (Sandbox Code Playgroud)

这是通过输入:hhhhhhhhhhhhh

这是程序输出: hhhh

我在这个计划中有两个问题.

1-)我将程序设置为从用户输入的内容中获取5个字符并存储在s1中.当我运行该程序时,它只打印出4个字符.

2-)我还希望程序在打印出用户的内容之后继续打印出s1的其余部分.但它之后停了下来hhhh

请向我解释我的两个问题.谢谢

c++ arrays string cin

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

C++:在文本文件中存储char数组时是否存储了Null?

看看这段代码

ofstream obj("output.txt");
obj<<"Hello World";
Run Code Online (Sandbox Code Playgroud)

这里我发送到文本文件"output.txt"char数组"Hello World"

现在char数组在它们的末尾有一个终止null.

因此,当我将char数组发送到文本文件"output.txt"时,终止null是否也会被发送和存储,为什么?

c++ arrays fstream char ofstream

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

在类的成员函数定义中使用(::)

我正在测试课程,我上了这门课

class Point
{
private:
    int x,y;
public:
    void setit(int new_x,int new_y);
    void set_x(int new_x);
    void set_y(int new_y);
    int get_x();
    int get_y();
};
Run Code Online (Sandbox Code Playgroud)

现在我继续编写所有公共函数的函数定义,但是,

在编写void set(int new_x,int new_y); 函数定义时,有些东西让我感到困惑

void Point::setit(int new_x, int new_y){
    Point::set_x(new_x);
    Point::set_y(new_y);
}

void Point::setit(int new_x, int new_y){
    set_x(new_x);
    set_y(new_y);
}
Run Code Online (Sandbox Code Playgroud)

我注意到前两个函数定义具有完全相同的效果.

我认为如果没有::运算符它将无法工作,因为它会搜索类外的函数,因为我不再表示它们在Point类中

任何人都可以解释为什么他们都有相同的效果?

谢谢.

c++ oop class function

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

C++:编号安排程序无法正常工作

我试过制作一个程序来对数组进行排序.

我已经尽了最大努力,但是存在这个问题:虽然我做了一个循环交换数字并安排它们,当我输出数组时,没有任何变化,数组保持不变.

代码将使一切更清晰

这是主要功能:

int main(){
int arr[10];
//For loop to get from user numbers to be put into the array
for ( int i = 0; i<10; i++){
    cout << "Enter the number to be recorded: ";
    cin >> arr[i];
    cout << endl;
}
// Set counter n to 0 ( counts numbes of number swaps)
int n = 0;
do {
    //re sets counter to 0
    n=0;

    //Check the entire loop if arr[i] bigger than arr[i+1] and swaps …
Run Code Online (Sandbox Code Playgroud)

c++

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

C++:使用带指针字符串的Strcpy

可能重复:
使用strcpy时访问冲突?

我遇到了一些困扰我的事情

char* p = "Hello"; strcpy (p,"bye");

这总是给我一个错误,那么我如何使用strcpy指针字符串.

(请没有人告诉我使用std :: string)

谢谢

c++ arrays string pointers strcpy

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

C++:文本文件中的数据是什么类型的?

我可以将一个ofstream对象创建为这样的文本文件

ofstream obj("file.txt")

然后我可以继续发送它 int c=5

obj << c;

当我发送c到文本文件时,它存储的数据类型是什么?

c++ fstream ofstream

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