- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Tôi đang cố gắng sử dụng istream& getline
而不是使用 istream& operator
从文件中读取行。
结果cpp
#include "Result.h"
Result::Result()
{
Coursename[0] = '\0';
}
Result::Result( const char * nam, unsigned scor )
{
strncpy( Coursename, nam, CourseNameSiz );
score = scor;
}
//istream& getline( istream & input, Result & Re, ',' )
istream & operator >>( istream & input, Result & Re )
{
//getline(Re.Coursename, input, ',');
input >> Re.Coursename >> Re.score;
trả về đầu vào;
}
ostream & operator <<( ostream & os, const Result & Re )
{
os << " Unit Name: " << Re.Coursename << '\n'
<< " Result: " << Re.score << '\n';
return os;
}
int Result::GetScore() const
{
return score;
}
inline void Result::SetScore( unsigned scor )
{
score = scor;
}
结果标题
#ifndef RESULT_H
#define RESULT_H
#include
#include
#include
sử dụng không gian tên std;
const unsigned CourseNameSiz = 10;
class Result
{
công cộng:
Result();
Result( const char * nam, unsigned scor );
int GetScore() const;
// Get the number of s.
void SetScore( unsigned scor );
// Set the number of score.
//string Result:GetCourseName() const;
friend ostream & operator <<( ostream & os, const Result & Re );
//friend istream & getline( istream & input, Result & Re, ',' );
friend istream & operator >>( istream & input, Result & Re );
riêng tư:
char Coursename[CourseNameSiz];
//string Coursename[CourseNameSiz]; // Unit name, C style string
int score; // number of scores
string str;
};
#endif // RESULT_H
这一切都按照我想要的方式工作,但我需要更改它,而不是一次读一个词,我想使用带有分隔符的 istream& getline。代码中的大部分注释是我尝试更改为 getline 方法。我制作了一个字符串数组,作为测试,我试图将读取文件中的第一项放入其中,但显然没有用。
我只是想在这里寻找一点指导。提前致谢
编辑:输入文件:rinput.txt
31525 1 4
JPN_101 3 Japanese, 90,
ICT 4 example1, 91,
TIC 4 example2, 92,
CIT 4 example3, 93
所以在上面写着 example1 和 91 的地方,这是我尝试使用带有定界符的 getline 的两个项目,因为我想在我的读取文件中使用空格
其他信息在不同的类中读取,当我让这个类工作时,我将更改为 getline 方法。
输出文件:routput.txt
Student ID: 31525
Semester: 1
Unit: JPN_101
Credits: 3
Unit Name: Japanese
Result: 90
Unit: ICT
Credits: 4
Unit Name: example1
Result: 91
Unit: TIC
Credits: 4
Unit Name: example2
Result: 92
Unit: CIT
Credits: 4
Unit Name: example3
Result: 93
Number of courses = 4
Total credits = 15
这是我对数组字符使用运算符方法时的输出。
include\Result.h|28|error: expected identifier before ','|
include\Result.h|28|error: expected ',' or '...' before ','|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
它指向头文件第 28 行,它是 friend istream & getline( istream & input, Result & Re, ',' );
我相信我只是不明白为什么只是将其更改为字符串数组 (string Coursename[CourseNameSiz];
) 然后将 operator
方法更改为 getline
方法不像操作符方法那样只是让它返回输入。
我希望我的解释是正确的,我请人稍微翻译一下以帮助我更好地表述。
Cảm ơn
1 Câu trả lời
这一行
friend istream & getline( istream & input, Result & Re, ',' );
不会编译,因为你有一个常量作为第三个参数而不是参数声明。
在您的情况下,因为您在方法内对 getline 的调用中对 ','
进行了硬编码,所以根本不需要传入逗号。
friend istream & getline( istream & input, Result & Re);
同样,当你定义函数时,你不需要函数定义中的','
:
istream& getline( istream & input, Result & Re)
{
getline(Re.Coursename, input, ',');
trả về đầu vào;
}
请注意,您仍然需要在 getline
的内部调用中使用逗号。
这应该可以修复您列出的编译器错误,如果它不起作用,您仍然需要调试代码。
关于c++ - 将 istream 运算符 >> 转换为 istream getline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29508337/
Toán tử Or thực hiện phép toán logic OR trên hai biểu thức. result = expression1 Hoặc expression2 Tham số result Bất kỳ biến số nào. biểu thức1 Bất kỳ
Toán tử Not thực hiện phép toán logic NOT trên một biểu thức. result = Không phải biểu thức Tham số result Bất kỳ biến số nào. biểu thức Bất kỳ biểu thức nào. Bảng sau đây cho thấy cách
Toán tử Is so sánh hai biến tham chiếu đối tượng. result = object1 Là object2 Tham số result Bất kỳ biến số nào. object1 Bất kỳ tên đối tượng nào. object2 Bất kỳ
Toán tử \ chia hai số và trả về kết quả dưới dạng số nguyên. result = number1\number2 Tham số result Bất kỳ biến số nào. number1 Bất kỳ biểu thức số nào. số
Toán tử And thực hiện phép toán logic AND trên hai biểu thức. result = expression1 Và expression2 Tham số result Bất kỳ biến số nào. biểu thức1
Toán tử + tính tổng của hai số. result = expression1 + expression2 Tham số result Bất kỳ biến số nào. expression1 Bất kỳ biểu thức nào. kinh nghiệm
Tôi thấy khó hiểu với đoạn mã này: var n1 = 5-"4"; var n2 = 5+"4"; alert(n1); alert(n2); Tôi biết n1 là 1. Đó là bởi vì toán tử trừ biến chuỗi "4" thành
Tôi nghĩ tôi sẽ đạt được 12 điểm, không phải 7 điểm. w++, khi đó w sẽ bằng 4, tức là 100, và w++, w sẽ bằng 8, tức là 1000; do đó w++|z++ sẽ bằng 100|1000 = 1100 sẽ bằng 12. Tôi bị sao thế này? số nguyên
Toán tử Xor thực hiện phép toán logic "OR loại trừ" trên hai biểu thức. result = expression1 Xor expression2 Tham số result Bất kỳ biến số nào. biểu thức1
Toán tử Mod chia hai số và trả về số dư. result = number1 Mod number2 Tham số result Bất kỳ biến số nào. number1 Bất kỳ biểu thức số nào. số
Toán tử Imp thực hiện hàm ý logic trên hai biểu thức. result = expression1 Imp expression2 Tham số result Bất kỳ biến số nào. biểu thức1
Toán tử Eqv thực hiện tính tương đương logic của hai biểu thức. result = expression1 Tương đương expression2 Tham số result Bất kỳ biến số nào. biểu thức1
Tôi có một lớp vectơ toán học đơn giản với phép toán quá tải. Tôi muốn có một số kết quả về thời gian cho người điều hành của tôi. Tôi có thể dễ dàng tính thời gian cho +=, -=, *= và /= của mình bằng cách tính thời gian cho đoạn mã sau: Vector sum; for(s
Tôi mới làm quen với toán tử so sánh do người dùng định nghĩa. Tôi đang đọc một cuốn sách có đề cập đến ví dụ sau: struct P { int x, y; bool operator, operator<>
Trên trang Wikipedia về SQL, có một số bảng chân trị cho logic bool trong SQL. [1] Trang Wikipedia dường như được lấy từ tiêu chuẩn SQL:2003. Bảng chân lý cho toán tử bằng (=) giống với I trong bản thảo SQL:2003.
Tôi tình cờ gặp một toán tử C++ kỳ lạ. http://www.terralib.org/html/v410/classoracle_1_1occi_1_1_number.html#a0f2780081f
Tôi đã đọc về một câu hỏi trong SO và trong các câu trả lời có đề cập như sau: Nếu không tìm thấy hàm giải phóng khớp rõ ràng nào, pr
Tôi tình cờ tìm thấy giải pháp này nhưng tôi không hiểu chính xác điều gì đang diễn ra trong đó. Có ai giải thích được không! Theo tôi hiểu thì nó cố gắng tính số ô trong lưới a*b bằng cách đếm một nửa số ô rồi nhân đôi chúng. Nhưng tôi không hiểu được lệnh gọi đệ quy. Xin vui lòng không đề xuất các giải pháp khác
Kiểu cơ bản của Go Kiểu Boolean bool Độ dài: 1 byte Giá trị: Các giá trị kiểu Boolean chỉ có thể là true hoặc false và không thể biểu diễn bằng số Số nguyên Kiểu số nguyên phổ quát int / uint (có dấu / không dấu, tương tự bên dưới) Độ dài: Theo phép toán
Trong hướng dẫn này, bạn sẽ tìm hiểu về các toán tử khác nhau có trong JavaScript và cách sử dụng chúng thông qua các ví dụ. Toán tử là gì? Trong JavaScript, toán tử là các ký hiệu đặc biệt được sử dụng để thực hiện các phép toán trên toán hạng (giá trị và biến). Ví dụ,
Tôi là một lập trình viên xuất sắc, rất giỏi!