成员函数访问的main中的用户输入
User input in main accessed by member functions
我有这个代码:
#include <iostream>
#include <string>
#include "header8.h"
using namespace std;
int main()
{
Counter test;
string input;
cout << "Enter a stringn";
getline(cin, input);
test.countcharacters();
test.countnumbers();
}
void Counter::countcharacters(){
for(unsigned int i=0; i<input.length(); i++){
if(input.at(i) == 'a'){
alphabet[0]++;
}
}
}
void Counter::countnumbers(){
for(unsigned int i;i<input.length();i++){
if(input.at(i) == '0'){
numbers[i]++;
}
}
}
我的错误:
当我输入字符串时,值总是返回0。知道为什么吗?
发布您的Counter类定义正如其中一条正确的评论所说,我看不出计数器看到相同的输入变量。
编辑:然后根据您的代码进行修复更换主
getline(cin, input);
带有
getline(cin, test.input);
并删除
string input;
这是我的解决方案。
int main()
{
string input;
cout << "Enter a stringn";
getline(cin, input);
Counter test(input); // highlight
test.countcharacters();
test.countnumbers();
}
您需要调用类Counter
的构造函数,并将"input"传递到Counter::input
(当然,您需要添加一个以字符串为参数的构造函数)。或者你可以写一个函数如下:
void Counter::setInput(string _input)
{
this.input = _input;
}
并在开始计数之前调用此函数。
相关文章:
- C++如何通过用户输入删除列表元素
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 如何只允许用户输入正整数
- C++如何计算用户输入的数字中的偶数位数
- 通过for循环使用用户输入填充列表
- 在C++中,我如何接受不同于同一行的用户输入
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- 显示基于用户输入的整数的字符
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 打印时有二叉树问题.用户输入不打印任何内容
- C ++奇怪的数组由用户输入
- 如何允许大写和小写用户输入?
- C++读取用户输入而不按回车键(Mac OS X),与Turbo Pascal中的读取键相同
- 如何存储用户输入的所有数据,然后在他们想要查看所有数据时显示它们
- 如何使用用户输入变量制作二维数组?
- 用户输入字符串的文件附加问题..C++
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 如何使用递归循环我的代码(当用户输入无效输入时,它会再次提示他们)?