質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

ファイルI/O

ファイルI/Oは、コンピューターにおけるファイルの入出力です。これは生成/削除やファイルを読み込んだり、出力をファイルに書き込むようなディレクトリやファイルの運用を含みます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

956閲覧

クラスとファイル読み込み

gekko

総合スコア16

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

ファイルI/O

ファイルI/Oは、コンピューターにおけるファイルの入出力です。これは生成/削除やファイルを読み込んだり、出力をファイルに書き込むようなディレクトリやファイルの運用を含みます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

1グッド

0クリップ

投稿2020/05/27 08:52

編集2020/05/27 09:06

クラスのファイル読み込みでエラーが起こっており困ってます。F1から実数値を受取り、F2から自然数を受け取ります。ターミナルからXを実数値入力し、Ci = (-1)^i * Ai * X^Bi のCを要素ごとにF3に出力し、ターミナルにCの合計値を出力します。お助けいただけると幸いです。

c++

1#include <bits/stdc++.h> 2#include <fstream> 3using namespace std; 4#define _GLIBCXX_DEBUG 5#define rep(i,n) for(int i=0; i<(n); i++) 6#define all(n) begin(n),end(n) 7using ll = long long; 8using P = pair<int,int>; 9 10stack<double> a; 11stack<int> b; 12 13int X; 14class num 15{ 16 vector<int> c;//dynamic memory 17public: 18 num(istream& finA, istream& finB); 19 void calculate(); 20 void print(ostream& fout); 21}; 22 23num::num(istream& finA, istream& finB){ 24 if(finA.fail()||finB.fail()){ 25 cout << "cannot read file" << endl; 26 exit(1); 27 } 28 29 //input A 30 int A; 31 while((finA >> A) != 0){ 32 a.push(A); 33 } 34 //input B 35 int B; 36 while((finB >> B) != 0){ 37 a.push(B); 38 } 39 40}; 41 void num::calculate(){ 42 43 cout << "insert real number" << endl; 44 int n = max(a.size(), b.size()); 45 rep(i,n){ 46 int z; 47 int A = a.top(); 48 a.pop(); 49 int B = b.top(); 50 b.pop(); 51 if(i%2==0) z = -1; 52 else z = 1; 53 double y = z*A*pow(X, B); 54 c.push_back(y); 55 } 56 } 57 void num::print(ostream& fout){ 58 double sum = 0; 59 rep(i,c.size()){ 60 fout << c[i] << endl; 61 sum+=c[i]; 62 } 63 cout << sum << endl; 64 } 65 66 67int main(){ 68 cin >> X; 69 ifstream finA("F1.txt"); 70 ifstream finB("F2.txt"); 71 ofstream fout("F3.txt"); 72 num hoge(finA, finB); 73 hoge.calculate(); 74 hoge.print(cout); 75 return 0; 76} 77 78

F1.txt
1
20
22
2.23
1.01

F2.txt
2
3
4
5
6

イメージ説明

wagashi_157👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/05/27 09:01

エラーメッセージを提示してください
gekko

2020/05/27 09:07

exam.cpp:36:26: note: ‘std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}’ is not derived from ‘const std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>’
gekko

2020/05/27 09:07

一応画像を投稿に載せました
guest

回答2

0

自己解決

コードを修正したら治りました

c++

1#include <bits/stdc++.h> 2#include <fstream> 3using namespace std; 4#define _GLIBCXX_DEBUG 5#define rep(i,n) for(int i=0; i<(n); i++) 6#define all(n) begin(n),end(n) 7using ll = long long; 8using P = pair<int,int>; 9 10stack<double> a; 11stack<double> b; 12 13double X; 14class num 15{ 16 vector<double> c;//dynamic memory 17public: 18 num(istream& finA, istream& finB); 19 void calculate(); 20 void print(ostream& fout); 21}; 22 23num::num(istream& finA, istream& finB){ 24 if(finA.fail()||finB.fail()){ 25 cout << "cannot read file" << endl; 26 exit(1); 27 } 28 29 //input A 30 double A; 31 while(finA >> A){ 32 a.push(A); 33 } 34 35 //input B 36 int B; 37 while(finB >> B){ 38 b.push(B); 39 } 40 41 42}; 43 void num::calculate(){ 44 int n = max(a.size(), b.size()); 45 rep(i,n){ 46 double z; 47 double A = a.top(); 48 a.pop(); 49 double B = b.top(); 50 b.pop(); 51 if(i%2==0) z = -1; 52 else z = 1; 53 double y = z*A*pow(X, B); 54 c.push_back(y); 55 //cout << y << endl; 56 } 57 } 58 void num::print(ostream& fout){ 59 double sum = 0; 60 rep(i,c.size()){ 61 fout << c[i] << endl; 62 sum+=c[i]; 63 } 64 cout << sum << endl; 65 } 66 67 68int main(){ 69 cout << "insert real number" << endl; 70 cin >> X; 71 ifstream finA("F1.txt"); 72 ifstream finB("F2.txt"); 73 ofstream fout("F3.txt"); 74 num hoge(finA, finB); 75 hoge.calculate(); 76 hoge.print(fout); 77 return 0; 78} 79 80/*answer for 2 81 first one shows that this array gets static memory 82 second one means that this array get dinamic memorry 83 */ 84 85コード

投稿2020/05/27 09:41

gekko

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

とりあえず、コンパイルエラーは、AB の入力部分を以下のように修正すれば治ります。

c++

1 while(finA >> A){

c++

1 while(finB >> B){

論理エラーはまだおえて追えてません。

投稿2020/05/27 09:36

編集2020/05/27 09:37
Yasumichi

総合スコア1773

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問