C++です。以下を実行したのですが、実行結果に改行数は出るが文字数がでません。お願いします。
#include <iostream.h>
int main(void)
{
char c;
int ccount = 0;
int ncount = 0;
while (cin.get(c)) {
ccount++;
if (c == '\n')
ncount++;
}
cout << "文字数=" << ccount << '\n';
cout << "改行数=" << ncount << '\n';
return (0);
}
No.3ベストアンサー
- 回答日時:
すみません。
すっかり回答が遅くなってしまいました。>> hoge.exe > out.txt とすれば、結果がファイルに書き込まれ、
> これは、このままDOSに打ち込むのでしょうか?
実際には「実行ファイル名 > 出力ファイル名」になります。
出力ファイル名に、既に存在するファイル名を指定すると、その内容が上書きされてしまうので注意が必要です。
> 実行ファイルの名前 < 入力ファイル名 > 出力ファイル名 でやって見のですが、プログラム全体の文字数、改行数が表示されて、実行結果の文字数、改行数が表示されません。
これって、入力ファイル名にソースファイルを指定していませんか?
入力をキーボードからにしたければ、「< 入力ファイル名」は書かないようにします。
> つまり、何文字、何行打ち込もうとも、
ちょっとこれが不明だったんですが、入力ファイルを指定しているにも関わらず、入力できたということでしょうか?
普通、入力ファイルを指定すると、キーボードから入力する代わりにファイルの内容が読み出され、キー入力待ちにはならないはずなんですが・・・
不明な点は、また補足ください。
No.2
- 回答日時:
過去にも同様の症状での質問がありました。
(下記URL)入力の終了には Ctrl+Z を使いますよね。
どうもこれが悪さをして、次の1行が表示されなくなる(消される?)ようです。
恐らくMS-DOSのコンソール入出力制御が、そういう仕様なのでしょう。
これはあくまでコンソール上での話なので、出力をファイルへリダイレクトすれば正しく結果が書き込まれますし、入力をファイルからリダイレクトさせれば正しい結果が表示されます。
DOS窓内のみで作業が必要なら、文字数を出力する前に、改行を1つ出力すればOKです。
# リダイレクトというのは、出力先を画面からファイルに変えたり、入力元をキーボードからファイルに変えたりする方法です。
# hoge.exe > out.txt とすれば、結果がファイルに書き込まれ、
# hoge.exe < in.txt とすれば、ファイルの内容が入力に使われます。
# もちろん、in.txt には、予め入力したい内容を書き込んでおく必要があります。
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=161528
この回答への補足
>DOS窓内のみで作業が必要なら、文字数を出力する前に、改行を1つ出力すればOKです。
これは解りました。
> hoge.exe > out.txt とすれば、結果がファイルに書き込まれ、
これは、このままDOSに打ち込むのでしょうか?
解らなかったので以下を実行しました。
実行ファイルの名前 < 入力ファイル名 > 出力ファイル名 でやって見のですが、プログラム全体の文字数、改行数が表示されて、実行結果の文字数、改行数が表示されません。
つまり、何文字、何行打ち込もうとも、
文字数=293
改行数=18となります。
例えば、
aaa
aaa
の場合、
文字数=8
改行数=2
という具合に、出力ファイルに出ないのでしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- 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言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSでEXCEL⇒CSV変換で日付の書...
-
Accessでのレポート印刷待機方法
-
CSV形式に変換
-
VBA でメモ帳へ保存する際の保...
-
ファイル出力の場所を指定
-
出力をExcelにすることは可能??
-
MS-Word で作成した表をLatexに...
-
VBAでエクセルをCSVに変換時
-
gnuplotでreplotできない??
-
Acccess レポートをグループ別...
-
二次元配列をクリップボードに...
-
C言語でBMP画像(ファイル)は...
-
シェルコマンドの 2>&1 とはど...
-
FORTRANの出力データの左寄せが...
-
printfだと出力されるのにfprin...
-
PDFファイルを指定の名前でプロ...
-
OCRで起こしたテキスト文字をCS...
-
コンソールの出力をパイプでダ...
-
ドキュワークスでPDFファイルを...
-
井戸型ポテンシャルの数値解シ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
ファイル出力の場所を指定
-
VC++でUTF-8のファイルを出力し...
-
テキストファイルに改行コード...
-
シェルコマンドの 2>&1 とはど...
-
Acccess レポートをグループ別...
-
Wordマクロで指定したフォルダ...
-
二次元配列をクリップボードに...
-
ファイル形式またはファイル拡...
-
CreateProcess関数と実行後の戻...
-
fortranのtxtファイル出力書式...
-
サウンド出力のデバイスを選択...
-
VBA でメモ帳へ保存する際の保...
-
1行ずつではなくまとめてファイ...
-
VBSでEXCEL⇒CSV変換で日付の書...
-
C++ fprintf_sの使い方がわからん
-
ファイルの文字コードをUTF-8に...
-
pLaTeX の EPSファイル読み込み...
-
AccessVBA複数レポート条件毎に...
-
フォルダにあるPDF情報の抽出(VBA)
おすすめ情報