No.4ベストアンサー
- 回答日時:
問題を分けましょう。
1.別のファイルに記録された文字列を1行ずつ取り出す。
2.その1行の文字列から新しいファイル名を生成する。
3.ファイルを作成/オープンする。
1.の例(ヘッダ省略):
std::ifstream ifstrm("file.txt");//この辺は適当に按配してください
std::string line;
while ( std::getline( ifstrm, line ) )
{
//処理
}
ファイルの1行をlineに読み込んでしまえばあとは回答No.2でいいはずです。
ただし、No.2のサンプルは「6文字目から4文字」を決め打ちしてますから、条件に合わない文字列が出現する可能性とその場合の処理方法についてご自分で検討される必要があります。
No.3
- 回答日時:
意図を誤解していなければですが
この例ですが、必ず、桁は7から10の固定であれば、方法はいろいろあります。簡単にはstrncpyを使う手かな、この場合、ASCIZにするためにNULLを追加します。
char *intext = "01 po 0979876"
char filename[20]
strncpy(intext+6,filename,4);
filename[4]=NULL;
file = fopen(filename,"r");
No.2
- 回答日時:
×行目
○文字目
ですね?
標準ライブラリなら、たとえば、
std::string str = "01 po 0979876";
std::string substr1( str, 6, 4 ); //第3引数は部分文字数
//or
std::string substr2 = str.substr( 6, 4 );
使用しているライブラリによっては別の文字列オブジェクトとそのメソッドが用意されていて、そちらを使ったほうが楽かもしれません。
余談ですが。
まぁ、「可能ですか?」と訊かれれば「可能です」と答えるのがもっとも適切妥当ですね。
コードが知りたければ最初から「どのようなコードを書けば?」と質問すれば回答するほうも手間がかかりません。
ありがとうございます。
>×行目
>○文字目
>ですね?
そのとおりです。
文字列は、実は別のファイルに格納されているものを
一行ずつとりだしてきてファイル生成に用います。
ですので、
>std::string str = "01 po 0979876";
というように最初に与えられているわけではないんです。
配列に格納された文字を連結してファイル名にすればよいと思うのですが、
どのようなコードになるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語で 英文字のみからなる文字列、”Radar”、”WasItACatISaw”、”a”、””(空 5 2022/12/20 15:17
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- 計算機科学 急ぎです、大学数学再帰の問題難しくてがわからないです。 以下の4つの文字列を連結して新たに生成できる 1 2023/05/17 20:11
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで=より左の文字を一括で...
-
エクセルでアルファベットか数...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
文字列からタブコードを取り除...
-
エクセルで文字列をtxtファイル...
-
エクセルで文字列の最大値を抽...
-
VBの「As String * 128」とは?
-
エクセル 数値データを桁をそ...
-
Left関数とRight関数を合わせた...
-
textboxユーザーコントロールの...
-
ORCLEでの小数の表示方法の変更...
-
同一セル内に関数と文字列を同...
-
アクセスで特定の数字以外(複...
-
16進数を10進数に簡単に変換す...
-
Msgboxの×が押されたとき
-
VBA2005 16進を2桁で表示したい。
-
【Excel VBA】複数ある特定の文...
-
NULLの定義について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
Excelで指数表現しないようにす...
-
エクセルで文字列の最大値を抽...
-
エクセル 数値データを桁をそ...
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
sedなどで、特定の文字列の後の...
-
MS SQLServer のSQLで文字列の...
-
Left関数とRight関数を合わせた...
-
Msgboxの×が押されたとき
-
アクセスで特定の数字以外(複...
-
【Excel VBA】複数ある特定の文...
-
エクセルでセル内の文字列の最...
-
C#で年月を比較する
おすすめ情報