汇编语言的字符输入输出程序设计

汇编语言的字符输入输出程序设计,第1张

;呵呵,如此高分,也来凑热闹。

;运行示范如下

;C:\R

;HXGSFHSDG736RU3GRH32867VF847TBF47EHF78CGY4RCY4M8CEW7YDNRG

;GRNDY7WEC8M4YCR4YGC87FHE74FBT748FV76823HRG3UR637GDSHFSGXH

;C:\

;用MASM50编译通过

DATA SEGMENT

DB 512 DUP('$') ;定义可输入的字符个数

BUF DB '$'

CRLF DB 0DH,0AH,24H ;回车换行符

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV BX,OFFSET BUF ;指针指向待显示字符串尾部

AGAIN:

MOV AH,01 ;输入字符

INT 21H

CMP AL,0DH ;是回车吗

JE DISP ;是,转显示

DEC BX ;指针减1

MOV [BX],AL ;存入输入的字符

JMP AGAIN ;继续输入

DISP:

MOV AH,09 ;显示

MOV DX,OFFSET CRLF ;回车换行

INT 21H

MOV DX,BX ;定位待显示字符串首地址

MOV AH,09

INT 21H ;显示

MOV AH,4CH ;DOS返回

INT 21H

CODE ENDS

END START

#include<iostreamh>

#include<fstreamh>

#include<stringh>

int main()

{

char test[30];

int i;

char fw[30];

//::memset(fw,0,30);

ofstream ofi;

ifstream ifi;

cout<<"请输入你需要的文本:";

cin>>test[30];

cout<<"请输入你所要保存的文件名:";

cin>>fw;

ofiopen(fw);

for(i=0;i<strlen(test[30]);i++)

{

ofi<<test[30];

}

ofi<<endl;

return 0;

}

你的 cin>>fw[30]这句有问题,首先是fw[30]这个空间是未知的你并没有分配,因为fw的 下标直到29其次,你这样只是给fw数组的最后一位赋值了

所以有错误。。

测试案例:

第一次输入 :dddddddddddd

第二次输入:aatxt

那么将在程序所在的文件夹下看到这个文件,并且是正确 的 !

针对楼主的补充提问,我补充说明下,按照楼下的做法是没有错的 ,

但是我 说一下为什么上面我写的有错

char test[30];

这里定义的是指针数组。至于什么是 指针数组,如果你不懂,可以参考有关资料。

那么cin>>test[30];

这句就是你把数据都写到test[30]这个指针指向的 地方了

for(i=0;i<strlen(test[30]);i++)

这句循环的次数是你输入的字符数目,

ofi<<test[30];

而这句将会把你输入的字符都写到文件中 ,放在循环体内,将会不断的输出同样的很多次

所以才出现你说的问题 ,

另外还有一个很严重的问题,第一次写的时候我也没注意,就是cin>>test[30];

有两个问题,

1test[30]这个数组元素你并没有定义,是不能使用的,在这里之所以没有出错误,因为他是一个指针,指向的地方本身是没有有用数据的。如果你的磁盘空间很满,那么这杨写出现的问题的概率就很大了。所以你使用的下标不能>=30;

2test30];

这个指针你并没有给他分配内存,也就是通常所谓的野指针,指向一个未知的地方。应该NEW一个内存

这个指针使用的时候 有的时候会出现问题的。。一定要注意!!

#include <stringh>

void test()

{

char s[20];

gets(s);

if (strcmp(s, "2 3 4 5 6 2 4 6 4 3") == 0)

printf("3833333");

else if (strcmp(s, "2 2 2 2 2 2 2 2 2 2") == 0)

printf("0000000");

}

以上就是关于汇编语言的字符输入/输出程序设计全部的内容,包括:汇编语言的字符输入/输出程序设计、关于用vc++编写文件输入与输出的程序、C语言程序函数的输入与输出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9781251.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存