有关C ++中星号和字符串连接的问题

问题描述 投票:0回答:2

因此,我目前正在通过Jeremy Siek的udemy上的加速C ++课程进行学习,而我在该教程中提到了字符串连接,并且在一部分中,他下达了打印类似这样的内容(不使用嵌套循环)的任务:

输出:

*
**
***
****

(-所以我从较早就知道了for循环,而我对C ++编程并不完全陌生,但是我只是从较早的时候开始补充知识,我知道可以使用嵌套的for循环来解决此问题。但这不是我的问题。 ,请继续阅读,因为我必须先介绍一下我的问题)

在他编写这样的源代码程序之前(我已完全理解)

int main()
{
cout << "Please enter your name:";
string name;
cin>>name;

string greeting="Hello, " + name + "!";
string spaces(greeting.size(), ' ');
string stars(greeting.size(), '*');

cout << "**" stars << "**" << endl;
     << "* "<< spaces << " *"<< endl;
     << "* "<< greeting << " *"<< endl; 
     << "* "<< spaces << " *" <<endl;
     << "**" stars << "**" << endl;  

return 0;

} 

现在,关于我的问题:我正在尝试完成他给的任务,然后我想到了这样的东西:

#include<iostream>
#include<string>
using namespace std;

int main()
{
  string star="*";
  int br=1;

  cout<<star<<endl;
  while(br<4)
  {
    br+=1;
    string (newstar.size(br, '*') );

    cout<<newstar<<endl;
  } 



  return 0;
}

现在,该程序由于string (newstar.size(br, '*') );而导致错误,我不明白为什么这是错误的以及string newstar(br, '*');是正确的没有.size和没有()吗?

c++ string
2个回答
0
投票

错误是

prog.cc: In function 'int main()':
prog.cc:14:13: error: 'newstar' was not declared in this scope
     string (newstar.size(br, '*') );
             ^~~~~~~
prog.cc:14:13: note: suggested alternative: 'star'
     string (newstar.size(br, '*') );
             ^~~~~~~
             star

因为您未声明newstar。编译器已经在那里停止了,但是还有更多错误:std::string::size没有参数,并且不清楚编写string ( some_number);的期望。


0
投票

我认为您的意图是:

 string newstar(br, '*');

代替:

string (newstar.size(br, '*') );

也可以在该行之后增加br。

© www.soinside.com 2019 - 2024. All rights reserved.