请原谅长度,但这里有两个程序,两者完全相同,但有一个有一个没有setter,getter和构造函数.
我以前参加了一个基础的C++课程,并且不记得其中的任何一个,目前我没有看到它们的重点,如果有人能用lamen的话解释它们,我会非常感激它.当他们似乎只是空间浪费让我的代码看起来更长,但老师说他们很重要(到目前为止就是这样).
提前致谢!现在这里是代码:Mileage.java:
package gasMileage;
import java.util.Scanner; //program uses class Scanner
public class Mileage
{
public int restart;
public double miles, gallons, totalMiles, totalGallons, milesPerGallon;
public Mileage(int newRestart, double newMiles, double newGallons,
double newTotalMiles, double newTotalGallons, double newMilesPerGallon)
{
setRestart(newRestart);
setMiles(newMiles);
setGallons(newGallons);
setTotalMiles(newTotalMiles);
setTotalGallons(newTotalGallons);
setMilesPerGallon(newMilesPerGallon);
}
public void setRestart(int newRestart)
{
restart = newRestart;
}
public int getRestart()
{
return restart;
}
public void setMiles(double newMiles)
{
miles = newMiles;
}
public double getMiles()
{
return miles;
}
public void …Run Code Online (Sandbox Code Playgroud) 所以我已经购买了"Java for Dummies"第4版,我必须说这可能是我花在书上的最好的30美元.我不是新编码,如果我自己这样说,我实际上相当不错.
但是,我遇到了一行让我感到困惑的代码:
public void setName(String n)
{
if(!n.equals(""))
{
name = n;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题出现在第三行,if(!n.equals(""))部分......我知道if循环是如何工作的(即:if(this == that that){do stuff}),但是我之前没见过!n.equals("").有人可以向我解释一下吗?
PS:只是想猜一猜.它是否相同:
public void setName(String n)
{
if(n != "")
{
name = n
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这只是一种方法,以确保如果用户没有输入名称(即myAccount.setName ="";)它不会回复错误并像正常一样运行,但我不确定.
在此先感谢您的帮助!
编辑:改变了我的"myAccount.name ="";" 到"myAccount.setName ="";",抱歉混淆.
谢谢你:去Asaph,感谢答案!和Lucas Aardvark一样,他回答说,但Asaph先回答了我在他自己的回答中的验证评论,感谢所有人!
我意识到这是一个基本的问题,但我已经在网上搜索过,去了cplusplus.com,通读了我的书,我似乎无法掌握重载运算符的概念.cplusplus.com的一个具体示例是:
// vectors: overloading operators example
#include <iostream>
using namespace std;
class CVector {
public:
int x,y;
CVector () {};
CVector (int,int);
CVector operator + (CVector);
};
CVector::CVector (int a, int b) {
x = a;
y = b;
}
CVector CVector::operator+ (CVector param) {
CVector temp;
temp.x = x + param.x;
temp.y = y + param.y;
return (temp);
}
int main () {
CVector a (3,1);
CVector b (1,2);
CVector c;
c = a + b;
cout << c.x …Run Code Online (Sandbox Code Playgroud) 到目前为止,这是我的代码:
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
int count = 0;
string fileName;
string keyWord;
string word;
cout << "Please make sure the document is in the same file as the program, thank you!"
<< endl << "Please input document name: " ;
getline(cin, fileName);
cout << endl;
cout << "Please input the word you'd like to search for: " << endl;
cin >> keyWord;
cout << endl;
ifstream infile(fileName.c_str());
while(infile.is_open())
{
getline(cin,word);
if(word == keyWord)
{ …Run Code Online (Sandbox Code Playgroud) 所以老师提出了这个任务:
您已被联合网络执法司令部雇用,并且您已获得包含您必须解密的空密码的文件.
因此,对于给出的第一个文件(作为示例),每隔一个字母都是正确的(即:'hielqlpo'是hello(假设您以第一个字母开头).我的第一个问题是,如何读取文件?文档在我的桌面上的文件夹中,文件名为document01.cry.我不确定我需要将该文件放入程序的命令.
我也不太确定如何抓住一封信并跳过一封信,但说实话,我想在发布这个问题之前修补它!所以现在...我的问题如标题所述:你如何获取一个用C++阅读的文件?
如果它有所作为(我确定它确实如此),我正在使用Visual C++ 2008 Express Edition(因为它是免费的,我喜欢它!我还附上了我迄今为止的内容,请记住它 - 非常基本...我最后添加了getchar();它,所以当它运行正常时,窗口保持打开状态,所以我可以看到它(因为Visual Express一旦完成运行就会关闭窗口.)
到目前为止的代码:
#include<iostream>
using namespace std;
int main()
{
while (! cin.eof())
{
int c = cin.get() ;
cout.put(c) ;
}
getchar();
}
Run Code Online (Sandbox Code Playgroud)
PS:我意识到这个代码可以抓取并推出每个角色.现在这很好,一旦我可以阅读文件,我想我可以从那里修补它.我也在盯着我在C++上看到的一两本书,看看它弹出的任何东西,尖叫着"接我!" 再次感谢!
编辑::也很好奇,有没有办法输入你想要的文件?(即:
char filename;
cout << "Please make sure the document is in the same file as the program, thank you!" << endl << "Please input document name: " ;
cin >> filename;
cout << endl;
ifstream infile(filename, ios::in);
Run Code Online (Sandbox Code Playgroud)
此代码不起作用.它发回一个错误,说char不能转换为const char*.如何解决这个问题?
编辑2:没关系说第2部分,我发现了!再次感谢您的帮助!
所以我感到无聊,并决定我想制作一个刽子手游戏.当我第一次使用C++时,我在高中时做过这样的作业.但这是在我几乎没有几何形状之前,所以不幸的是我在形状或形式上没有做得很好,在学期之后我把一切都变成了愤怒.
我正在寻找一个txt文件,只是扔了一大堆的话(即:测试爱情饥饿flummuxed discombobulated馅饼尴尬你得到的想法)
所以这是我的问题:如何让C++从文档中读取随机单词?
我有一种感觉#include<ctime>需要,以及srand(time(0));获得某种伪随机选择......但我对如何从文件中取出一个随机单词并不是最模糊的...任何建议?
提前谢谢!
我正在研究一个程序,它接受一个从0到9999的数字,然后吐出单词值(即13将吐出"十三"等)并且我对数组有一个痛苦某些原因.
到目前为止这是班级:
#include<iostream>
#include<string>
using namespace std;
class Numbers
{
private:
int number;
string lessThan20[ ] = {"zero", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen",
"fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
string incrementsOfTen[ ] = {"twenty", "thirty", "fourty", "fifty", "sixty",
"seventy", "eighty", "ninety"};
string hundred = "hundred";
string thousand = "thousand";
public:
Numbers(int newNumber)
{
setNumber(newNumber);
}
void setNumber(int newNumber)
{
if(newNumber < 0 || newNumber > 9999)
{
cout << "Number cannot be …Run Code Online (Sandbox Code Playgroud) 所以我意识到#include是必要的,并且有一个pow(x,y),其中x ^ y可以工作......但是当我尝试使用pow(2,(num-1))时,它踢回了一个错误...
errorC2668:'pow':对重载函数的模糊调用
我的代码行如下
perfect = (pow(2,(num-1))) * (pow(2,num)-1);
Run Code Online (Sandbox Code Playgroud)
有什么建议?
提前致谢
编辑:
num确实声明为int.
num确实有一个值,从1开始并转到UINT_MAX
方程式中添加了星号