No.1ベストアンサー
- 回答日時:
#include <string.h>
#include <strstream.h>
int main(void){
string str("1234");
istrstream istr(str.data());
int i;
istr >>i;
cout << i << '\n';
return(0);
}
strstreamを使うことで、
cin >> i;
と同じように変数に代入できます。
ご回答ありがとうございます。
質問が言葉たらずだったのですが、
質問の動機は、atoiを使うと、なんだかC++にCを継ぎ足したようで嫌だなあ、
もっと、C++らしい書き方ができないものか?ということでした。
ストリームを使うとC++らしく書けているような気がしますね!
(素人の勝手な感覚かも知れませんが。)
strstreamを使えば型変換して代入できるという点、とても参考になりました。
有難う御座いました。
No.4
- 回答日時:
str.c_str():
// basic_stringの'\0'で終わる文字列本体へのポインタを返します。
const charT* c_str() const;
str.data():
// 文字列データ本体をそのまま返す。
// '\0'が文字列の終わりにあるという保証はたぶんありません。
const charT* data() const;
str.data()は char* と同じように扱えないかもしれないので char* とまったく同じ str.c_str() を使うほうがC言語になれている人にはいいでしょう
また<~.h>は旧式のものなので.hなしのもののほうがいいでしょう
ご解説ありがとう御座います。
Cは文字列処理がハッキリ言ってダメダメなので(もちろん、慣れの問題もあるのでしょうが。)C++を使い始めました。
そんなに大きなプログラムを組むわけでもないのでC++で組む必要もないのですが、
C++のその枠組みというか思想というか、言語設計っていうんでしょうか、
まあそいったものに関心し、少くとも、C++らしいコードを書きたいものだと思っております。
でも、CからC++に行くと、C++の言葉を使った単なるCのようなダサいコードになってしまうというのが悩みだったりしまして。
まあ、Cもたいして使えないのですが。。。
No.3
- 回答日時:
難解な質問を読んでないので勘違いしているかも
#include<iostream>
#include<string>
using namespace std;
void main(void)
{
string str;
int i;
str="9";
i=atoi(str.c_str());
cout<<i<<endl;
}
ご回答ありがとうございます。#1のお礼の欄にも書かせて頂いた通り、
質問の動機は、atoiを使うと、なんだかC++にCを継ぎ足したようで嫌だなあ、
もっと、C++らしい書き方ができないものか?ということでした。
質問が言葉たらずでした。申し訳け有りません。
でも、
i=atoi(str.c_str());
は、すくなくともCとC++を正当につなげ、しかも私が質問欄にかいた
コードよりはるかにスッキリしてますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- 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# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# char string[100]; int c, i=0; while( (c=getchar()) 2 2022/05/30 21:41
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ハミング符号の解読について
-
unsigned char SJis[2]からstd:...
-
C言語のポインターで詰まっている
-
_CRT_SECURE_NO_DEPRECATE が効...
-
#include "fstream.h"
-
指定した文字を削除したい
-
switch文のエラーについて
-
std::mapのメモリアロケータに...
-
C言語について。
-
信頼区間の1.96や1.65ってどこ...
-
2÷3などの余りについて
-
O(n log n)について2
-
大学数学の問題です。 加法群Z/...
-
#define _CRT_SECURE_NO_WARNIN...
-
教えてください。数学Bの二項分...
-
「Aに対するBの割合」と「Aに対...
-
EXCELの分散分析表のP-値が....
-
Enterキーを押されたら次の処理...
-
プログラムでの数字につく”f”の...
-
fgetsなどのときのstdinのバッ...
マンスリーランキングこのカテゴリの人気マンスリー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のメモリリークに...
おすすめ情報