書を捨てて街に出る
仕事を捨て引き篭もる
俺は
ソースコードを右からうけて左にバグつきで受け渡す。
>>954 バグは取り除いて右に戻してください、おながいします。
客から来た仕様を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)))))
そりゃ fp >> str; は空白で区切られた文字列を読み込む処理だから当たり前じゃ・・・。
getline(fp, str); みたいなことがしたいの?
959 :
957:2007/07/04(水) 15:45:33
fp >> str; のところで既に改行されているようです・・・どうしたら
960 :
957:2007/07/04(水) 15:46:25
>>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;
ファイルとプログラムの文字コードが揃ってないとか?
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を返してきてエラーになっていました
解決してるのかどうかよく分からないけど、まあいいや。
とりあえず LISP 風の文法解析したいのなら、
もうちょっと真面目に構文解析の勉強した方がいいと思う。
967 :
デフォルトの名無しさん:2007/07/04(水) 16:49:41
追加です
コピペしたファイルだと
(名詞 (普通名詞 ((読み しめきり)(見出し語 〆切 (しめ切 1.6) (しめきり 1.6)))))
の
読みが検索できるのですが、元々の巨大なファイルだと失敗して-1を返します
文字コードが違うのでしょうか??どう対処したらいいでしょうか??
968 :
デフォルトの名無しさん:2007/07/04(水) 16:53:37
「 ((」をサーチするようにしたら成功しました すみません
読みだけ分かりゃいいの?
970 :
デフォルトの名無しさん:2007/07/04(水) 17:23:31
半角カタカナ、全角カタカナのstring型をすべて全角ひらがなへ変換するにはどうしたらいいですか
971 :
デフォルトの名無しさん:2007/07/04(水) 17:36:36
iccインストールしたんですけどvc++2003.netに統合できないんです。
誰かわかる人いたら教えてください。
お願いします。
973 :
デフォルトの名無しさん:2007/07/04(水) 17:50:37
>>972 ひらがな、カタカナが混じっているやつを一度にひらがなへ変換できるやつはないですか
ほかは知らないが、WindowsならLCMapStringがある。
975 :
デフォルトの名無しさん:2007/07/04(水) 18:05:29
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";
}
チェックするなら、半角カナでも濁音半濁音入れた方がいいと思うよ。
978 :
デフォルトの名無しさん:2007/07/04(水) 19:17:31
"ベンキョウシテミルオ ドウナッタヨ???"
べんきょうしてみるお どうなったよ???
ヴってどうなるんだ?
ヴヴヵヶ
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);
ヒント: unsigned char
えっと、宿題で出たんですけど、まったくわからないんで・・・C言語のプログラムです。
スーパーのレジの処理を行うプログラム。
品物の値段を入力していき、最後に0(ゼロ)を入力すると消費税を加算した金額を表示する。
さらに、預かり金を入力すると、お釣りを表示する。
<出力結果例>
いらっしゃいませ
XXX←値段を入力
小計=XXX円
XXX←値段を入力
小計=XXX円
0
小計=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
>>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
荒らしは止めたまえ
埋めるんなら↓の注意書きを
>>943-945 このスレは質問スレと統合されます
次スレはありません
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。