C++なら俺に聞け(入門篇)

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2007/07/03(火) 15:31:24
書を捨てて街に出る
953デフォルトの名無しさん:2007/07/03(火) 15:39:44
仕事を捨て引き篭もる
954デフォルトの名無しさん:2007/07/03(火) 23:51:18
俺は
ソースコードを右からうけて左にバグつきで受け渡す。
955デフォルトの名無しさん:2007/07/04(水) 06:58:08
>>954
バグは取り除いて右に戻してください、おながいします。
956デフォルトの名無しさん:2007/07/04(水) 15:00:25
客から来た仕様をPGへ受け流すの歌〜
957デフォルトの名無しさん:2007/07/04(水) 15:43:46
出力が変です どうしたらいいですか?? 空白で改行されます

#include <fstream>
#include <string>
using namespace std;

int main(int argc,char *argv[]){
if(argc!=2)return 0;
fstream fp(argv[1],ios::in);
if(!fp)return 0;
string str;
while(!fp.eof()){
fp >> str;
cout << str<<endl;
}
return 0;}

●入力ファイル
(名詞 (普通名詞 ((読み しめきり)(見出し語 〆切 (しめ切 1.6) (しめきり 1.6)))))

●出力
(名詞
(普通名詞
((読み
しめきり)(見出し語
〆切
(しめ切
1.6)
(しめきり
1.6)))))
958デフォルトの名無しさん:2007/07/04(水) 15:45:11
そりゃ fp >> str; は空白で区切られた文字列を読み込む処理だから当たり前じゃ・・・。
getline(fp, str); みたいなことがしたいの?
959957:2007/07/04(水) 15:45:33
fp >> str; のところで既に改行されているようです・・・どうしたら
960957:2007/07/04(水) 15:46:25
>>958
サンクス それでいってみます
961デフォルトの名無しさん:2007/07/04(水) 15:52:12
>>957
cout << str<<endl; < 志村ー endl endl
962デフォルトの名無しさん:2007/07/04(水) 15:58:59
追加質問なんですが・・三行目でエラーになるようです 実行時にです なぜでしょうか

getline(fp, str);
i=str.find( "((読み ");
str=str.substr( i+7 );
cout << str;
963デフォルトの名無しさん:2007/07/04(水) 16:04:39
ファイルとプログラムの文字コードが揃ってないとか?
i が npos になってないかどうか確認とかした?
964デフォルトの名無しさん:2007/07/04(水) 16:09:47
ここへ貼り付けるため簡略化したら動きました どうしたらいいでしようか?

#include <iostream>
#include <string>
using namespace std;

int main(){
string str="(名詞 (普通名詞 ((読み しめきり)(見出し語 〆切 (しめ切 1.6) (しめきり 1.6)))))";
int i=str.find( "((読み ");
str=str.substr( i+7 );
cout << str;
return 0;
}
965デフォルトの名無しさん:2007/07/04(水) 16:13:38
>>963
自己解決しました
出力が何も出ないので、はじめでエラーになっているのかと
おもったら一番最後で-1を返してきてエラーになっていました
966デフォルトの名無しさん:2007/07/04(水) 16:31:34
解決してるのかどうかよく分からないけど、まあいいや。
とりあえず LISP 風の文法解析したいのなら、
もうちょっと真面目に構文解析の勉強した方がいいと思う。
967デフォルトの名無しさん:2007/07/04(水) 16:49:41
追加です

コピペしたファイルだと
(名詞 (普通名詞 ((読み しめきり)(見出し語 〆切 (しめ切 1.6) (しめきり 1.6)))))


読みが検索できるのですが、元々の巨大なファイルだと失敗して-1を返します
文字コードが違うのでしょうか??どう対処したらいいでしょうか??
968デフォルトの名無しさん:2007/07/04(水) 16:53:37
「 ((」をサーチするようにしたら成功しました すみません
969デフォルトの名無しさん:2007/07/04(水) 16:56:22
読みだけ分かりゃいいの?
970デフォルトの名無しさん:2007/07/04(水) 17:23:31
半角カタカナ、全角カタカナのstring型をすべて全角ひらがなへ変換するにはどうしたらいいですか
971デフォルトの名無しさん:2007/07/04(水) 17:36:36
iccインストールしたんですけどvc++2003.netに統合できないんです。
誰かわかる人いたら教えてください。
お願いします。
972デフォルトの名無しさん:2007/07/04(水) 17:37:28
>>970
地道に変換する
973デフォルトの名無しさん:2007/07/04(水) 17:50:37
>>972
ひらがな、カタカナが混じっているやつを一度にひらがなへ変換できるやつはないですか
974デフォルトの名無しさん:2007/07/04(水) 17:57:37
ほかは知らないが、WindowsならLCMapStringがある。
975デフォルトの名無しさん:2007/07/04(水) 18:05:29
>>974
サンクス
976デフォルトの名無しさん:2007/07/04(水) 19:08:46
>>974
サンクス 出来ました!

#include <iostream>
#include <string>
#include <winnls.h>
#pragma comment(lib, "kernel32.lib")
using namespace std;

string henkan(string text){
int size =text.size()*2+1;
char *s = new char[size];
LCMapString(GetUserDefaultLCID(),LCMAP_FULLWIDTH|LCMAP_HIRAGANA,
text.c_str(), text.size()+1,s,size);
string ss=s;return ss;
}

int main(){
string sr="ヘンカンシテミルヨ ドウナッタヨ???";
cout << henkan(sr)<<"\n";
}
977デフォルトの名無しさん:2007/07/04(水) 19:14:28
チェックするなら、半角カナでも濁音半濁音入れた方がいいと思うよ。
978デフォルトの名無しさん:2007/07/04(水) 19:17:31
"ベンキョウシテミルオ ドウナッタヨ???"

べんきょうしてみるお どうなったよ???


979デフォルトの名無しさん:2007/07/04(水) 19:20:58
ヴってどうなるんだ?
980デフォルトの名無しさん:2007/07/04(水) 19:22:34
ヴヴヵヶ
981デフォルトの名無しさん:2007/07/04(水) 19:55:09
たびだひすみません

coutで"あ"を10進数で表示させるにはどうしたらいいのでしょうか??
982デフォルトの名無しさん:2007/07/04(水) 20:06:01
これでいいんでしょうか?値がマイナスになるんですが

string str="あい";
cout << (char)str[0]+((char)str[1]<<8);
983デフォルトの名無しさん:2007/07/04(水) 20:13:25
ヒント: unsigned char
984工房初心者:2007/07/04(水) 20:16:15
えっと、宿題で出たんですけど、まったくわからないんで・・・C言語のプログラムです。
スーパーのレジの処理を行うプログラム。
品物の値段を入力していき、最後に0(ゼロ)を入力すると消費税を加算した金額を表示する。
さらに、預かり金を入力すると、お釣りを表示する。
<出力結果例>
いらっしゃいませ
XXX←値段を入力
小計=XXX円
XXX←値段を入力
小計=XXX円

小計=XXXX円 消費税XX円 合計金額XXXX円
お預かり金額(入力させる)
お釣り XXX円(お釣りは1万円何枚、5000円何枚などを表示させる)
985デフォルトの名無しさん:2007/07/04(水) 20:17:19
>>983

順序どおりのはずなのに値が離れています・・これであっているんでしょうか

string str="ぁあ";
cout << (unsigned char)str[0]+((unsigned char)str[1]<<8)<<"\n";
cout << (unsigned char)str[2]+((unsigned char)str[3]<<8)<<"\n";

40834 
41090
986デフォルトの名無しさん:2007/07/04(水) 20:18:51
>>985
ヒント: ビッグエンディアン的に格納されている
987デフォルトの名無しさん:2007/07/04(水) 20:22:44
>>986
こっちにしたに良い具合になりましたよ サンクス!

cout << (unsigned char)str[1]+((unsigned char)str[0]<<8)<<"\n";
cout << (unsigned char)str[3]+((unsigned char)str[2]<<8)<<"\n";

33439
33440
988デフォルトの名無しさん:2007/07/04(水) 21:02:22
>>984
丸投げするつもりなら
C/C++の宿題を片付けます 92代目
http://pc11.2ch.net/test/read.cgi/tech/1183511364/l50
989デフォルトの名無しさん:2007/07/04(水) 21:03:08
 
990デフォルトの名無しさん:2007/07/04(水) 21:03:48
 
991デフォルトの名無しさん:2007/07/04(水) 21:04:26
 
992デフォルトの名無しさん:2007/07/04(水) 21:04:56
 
993デフォルトの名無しさん:2007/07/04(水) 21:05:26
 
994デフォルトの名無しさん:2007/07/04(水) 21:07:42
 
995デフォルトの名無しさん:2007/07/04(水) 21:08:23
 
996デフォルトの名無しさん:2007/07/04(水) 21:08:54
 
997デフォルトの名無しさん:2007/07/04(水) 21:09:26
 
998デフォルトの名無しさん:2007/07/04(水) 21:10:44
999デフォルトの名無しさん:2007/07/04(水) 21:13:57
荒らしは止めたまえ
1000デフォルトの名無しさん:2007/07/04(水) 21:14:43
埋めるんなら↓の注意書きを

>>943-945
このスレは質問スレと統合されます
次スレはありません
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。