![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ofstream::getの動作がおかしいのです
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
void main(void)
{
ifstreamifs;
ofstreamofs;
stringstr;
charc;
str="abc";
cout<<"before str: "<<str<<endl<<endl;
ofs.open("gomi");ofs<<str;ofs.close();
ifs.open("gomi");for(str="";ifs.eof()==0;str+=c)ifs.get(c);ifs.close();
cout<<"after str: "<<str<<endl<<endl;
}
の結果が
before str: abc
after str: abcc
になります
最後のcは何でつくのでしょうか?
回避する方法を教えてください
No.1ベストアンサー
- 回答日時:
> for(str="";ifs.eof()==0;str+=c)ifs.get(c);
ifs.get(c) の(直前ではなく)直後に eofか否かを判定しなければいけないのでは?
おっしゃる通りです
str="";while(true){ifs.get(c);if(ifs.eof()!=0)break;str+=c;}
とすれば動きました
ということは終端に達してもすぐにはeofを出さずに一回無駄な空出しして初めてeofを出すみたいですね
不便な仕様ですが決まっていることなので文句を言っても始まらないですね
どうもありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# sprintf()の使い方について 1 2022/08/17 16:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
enumの値から定義名を文字列化...
-
switch文のエラーについて
-
VC++で文字列から任意の文字を...
-
C言語のポインターで詰まっている
-
CStringとString
-
C++での <iostream.h>と<iostre...
-
MingwでC++のソースがコンパイ...
-
std::wstringのメモリリークに...
-
Cの関数からC++の関数(DLL)を...
-
2重の(?)の#include
-
_CRT_SECURE_NO_DEPRECATE が効...
-
string型の固定長文字列を配列...
-
構造体に決められた文字列を入...
-
Cでのパケットキャプチャについて
-
ofstream::getがおかしい!
-
STL string::findで見つからな...
-
指定した文字を削除したい
-
getlineについて
-
6行ソースをコンパイル可能にし...
-
VHDLのsignedとunsignedの違いは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
switch文のエラーについて
-
構文エラーが出ているのですが...
-
VC++で文字列から任意の文字を...
-
enumの値から定義名を文字列化...
-
空ENTERの判別
-
C++でShowCursorを使いたい。
-
なぜ、C++の標準ヘッダをインク...
-
#define中の#のエスケープ
-
C++で、テキストファイルを一行...
-
gccでコンパイル時のエラー
-
C言語のエラーを修正したい
-
#include "fstream.h"
-
C言語のポインターで詰まっている
-
リモートデスクトップの接続元I...
-
構造体配列のvectorへの変換と...
-
JPEGやPNGが読めるLoadImage関数
-
VS2019でofstreamが未定義になる
-
構造体に決められた文字列を入...
-
VHDLのsignedとunsignedの違いは?
-
std::wstringのメモリリークに...
おすすめ情報