私はCoco RのサンプルテイストをC#で扱っています。C#File stream reading strings(Coco/R Taste)
操作は、このような書き込みハロー世界
として与えられたとき、私は文字列を書くために、コードを拡張しようとしている
私は私が保存した文字列を記述することができる方法を、同定しました。私は私がいる問題のために、関連するコードを入れている:Taste.ATG
を拡大
| "write"
{ Expr<out type> (. if (type != integer) SemErr("integer type expected");
gen.Emit(Op.WRITE); .)
| '"'
ident (. name = Convert.ToString(t.val);
gen.Emit(Op.READS);
gen.Emit(Op.WRITES).)
'"'
}';'
CodeGen.csで
拡張操作: ファイルストリームは、このよう
public void Interpret (string data) {
int val;
try {
FileStream s = new FileStream(data, FileMode.Open);
Console.WriteLine();
pc = progStart; stack[0] = 0; top = 1; bp = 0;
に使用されています
と添加場合切り替え、その使用FILESTREAM
case Op.READ: val = ReadInt(s); Push(val); break;
case Op.READS: stackString[index] = ReadString(s) ; Push(index); index++; break;
case Op.WRITE: Console.WriteLine(Pop()); break;
case Op.WRITES: Console.WriteLine(stackString[Pop()]); break;
問題は、私はC、あります蟻は、インターネット上のどこでも文字列を読む方法を見つける、 明らかにReadString(s)
は同じ方法で動作しませんReadInt(s)
はありません。 ファイルストリームから文字列を読み取る操作を見つけるのに役立つかどうかは疑問でした。
私は以前にファイルストリーム管理を行っていません。
これはツイートして追加した後にコンパイルされますが、印刷結果は単なる「?」です。文字列の書き込みが何であっても。 – DustBunny
は、再び記事を見て、完全に投稿を変更しました。編集の他に –
もあります。私はそれを見つけるとATGの文字列を印刷すると、それはアクションの前に印刷されます。 )は、オペレーションを格納し、次にそれらを1つずつ実行するので、 "書き込み"文字列 ""を見ると "文字列"を読み取って印刷します。 – DustBunny