a*****i 发帖数: 4391 | 1 because your recvfrom function didn't return. |
|
S***a 发帖数: 116 | 2 比如我有个文件里面数据的格式是 1.234e+008.
也就是用fprintf的%10.3e格式输出去的.
可是用同样的参数在fscanf中怎么死活就读取不回来乐呢?
难道只能%f输出,然后%f读取才行? |
|
q***z 发帖数: 934 | 3 Hello I am a newbie on network programming.
I am trying to receive a packet
if((numbytes = recvfrom(udp_fd1, buf, MAXLEN-1, 0,(struct
sockaddr*)®ister_addr, &addr_len))==-1){
fprintf(stderr, "error in recvfrom.\n");
exit(1);
}
The packet I am receiving has the following possible structure.
typedef struct struct_CN
{
unsigned char magicA;
unsigned char magicB;
unsigned short msgLen;
} CN;
typedef struct struct_Cc
{
CN msgHeader;
uns |
|
s********h 发帖数: 286 | 4 我在程序停止的时候用
print dz[j]
打印我的数据,dz是一个数组,j是index。打印出来的数据和实际不一样!
实际上,在我的程序中,也就是停止程序的前一个语句,已经让程序打印出来这个值:
fprintf(stderr, "dz[%d]=%g,",j,dz[j]);
显示的是
dz[5]=0.603372,
可是用GDB打印的结果却是
(gdb) print dz[j]
$3 = 36.7898712
我也试了打印其它格式,都不对,实在找不到问题在哪里了。
请问大家知道这是怎么回事吗?多谢先!!! |
|
a***s 发帖数: 614 | 5 No, it is controlled by OS. |
|
|
n********a 发帖数: 119 | 7 set fflush as NULL
man fflush |
|
W*W 发帖数: 293 | 8 怎么用fwrite写入一个整型数组?我写出来是乱麻。用fprintf可以写入,用fwrite写
字符数组也可以。 |
|
l*****e 发帖数: 64 | 9 i guess one reason maybe that:
it's more flexible to control the reading/writing using fprintf/sscanf than
ofstream, especially when working with a bit complex data. |
|
L*******g 发帖数: 913 | 10 【 以下文字转载自 Computation 讨论区 】
发信人: LocalKing (Yeah Baby!), 信区: Computation
标 题: 请教用Mathematica输出mesh数据
发信站: BBS 未名空间站 (Thu Aug 21 00:29:20 2008)
Mathematica里有函数f(x,y),请问如何把x, y, f(x,y)的值按列输出到一个数据文件
里。
最后需要用别的软件读此文件画2D mesh图。
最终格式最好是相当于C的
for(i=0; i
x=i*dx;
for(j=0; j
y=j*dy;
fprintf(fp, "%f\t%f\t%f\n", x,y,f(x,y));
}
}
在线等2小时,多谢。 |
|
b***y 发帖数: 2799 | 11 ☆─────────────────────────────────────☆
baodong (馋懒大魔包) 于 (Fri Sep 23 13:28:48 2005) 提到:
Hello, I do not understand why the following code only wrote the test.txt once
. If I comment out "if (!fpTest)", it works. Why is it different with "if (!
fpTest)"???
#include
int main(void)
{
FILE* fpTest = NULL;
for (int i=0; i<5; i++)
{
if (!fpTest)
fpTest =fopen("test.txt", "w");
fprintf(fpTest, "%d\n", i);
fflush(fpTest);
fclose(fpT |
|
M********g 发帖数: 183 | 12 我是新手,现在用MPI做小程序,每算几千个循环之后要把一个矩阵写到文件里做后续
处理比如画图等等。
我现在的做法是矩阵的数据都传到一个process里,然后用fprintf写到文件里。
我看了看MPI I/O,好像用他写double的数据到文件只能用MPI自己读?
难道只能用sprintf写到字符串里再用MPI I/O并行写文件?
有没有什么好方法可以解决这么问题? |
|
|
s******a 发帖数: 318 | 14 谢谢,我再试试看。那么和sleep有什么关系? |
|
|
s******a 发帖数: 318 | 16 那是不是close了写入的信息就丢失啦?譬如说
先用一个fp指针写入
然后关闭
再用一个fp2指针写入
然后关闭
是不是只有第二次的信息留下来了? |
|
j*****a 发帖数: 436 | 17 Use fp=fopen("out.txt", "a");
"a" means appending, "w" means overwriting. |
|
p********o 发帖数: 640 | 18 没事的
不用管close
一般close 就是为了防止出现 异常crash program 吧buffet的文件先写入
每次循环都要close 一次文件的话程序会跑的很慢 |
|
h**p 发帖数: 377 | 19 即使没有fclose,等你退出你的程序的时候txt文件应该是写入过的。除非你在程序还在
运行时就从程序外面打开txt文件,那个时候是空的 |
|
w**********8 发帖数: 121 | 20 This is the write solution.
after the while loop fclose(fp). |
|
g*****1 发帖数: 998 | 21 我想用gnuplot里的:set timefmt "%Y-%m-%d"
然后在vc里:fprintf(p,"set timefmt "%Y-%m-%d"\n");
fflush(p);
结果gnuplot里显示的是 set timefmt "Y-m-0"
请问我错在哪?谢谢 |
|
|
X****r 发帖数: 3557 | 23 First, popen creates a new process, not just a new thread.
Second, delay exiting of the child process that reads from
the pipe just masks the underlying problem. What do you do
with these extra data you read in after you're supposed to
exit? If you're going to ignore them, then the parent process
that writes to the pipe should just ignore SIGPIPE and handle
the error in fwrite/fprintf/etc. properly. |
|
M**********n 发帖数: 432 | 24 #include
#include
#include
#include
#include
#include
#include
#include
int main()
{
int fd;
if((fd = shm_open("/dev/shm/ttt", (O_RDWR|O_CREAT), (S_IRUSR | S_IWUSR
| S_IRGRP | S_IWGRP |
S_IROTH | S_IWOTH ))) <
0)
{
fprintf(stderr, "failed to open file %sn", strerror(errno));
... 阅读全帖 |
|
t******q 发帖数: 117 | 25 It is belived that the buffered I/O are more effiecent than
the direct unbuffered i/o, since os will schedule the filebuffer -> user
buffer
transfer.
usually, you need to call fflush to make sure the fwrite out the
data from filebuffer to disk. since the schedule thing, it is not
safe to assume the data is out unless you force it write out.
if you fprintf to stdios, sometime you have to fflush the file pointer
to see the output. Maybe that is the reason.
read the FILE structure.
request,
reque |
|
l**t 发帖数: 170 | 26 I used fn='1.out';fprintf(fn,'%10.4f \n',l); it's wrong,
how to save variables in a file .out, and seperated by ',' so that
i can use them in excel. thanks! |
|
i*****e 发帖数: 159 | 27 在matlab里面的数据也是分行和分列的,难道输出都是在一行?
你也可以输出到excel文件格式
the
line. |
|
k***n 发帖数: 383 | 28 我把数据输出那一个文件里.
都是FLOAT的.
可是总有那么2行出错的,
好象错位了似的,数据也不对.
真是见鬼,怎么回事啊:(
我用的是
for (ii=1;ii<=100;ii++){
fprintf(file,"%.3e %.3e %.3e %.6e\n",X[ii],Y[ii],Z[ii],Temp[ii]);
} |
|
T*******e 发帖数: 47 | 29 check help of fopen, fclose, fread, fscanf, and fprintf commands.
to run an .exe file, check ! (use 'help punct') |
|
|
|
x*******a 发帖数: 11067 | 32 把FOPEN 和FCLOSE放在LOOP外边啊.. |
|
s******e 发帖数: 54 | 33 能不能将matlab的一个m文件所有的计算结果存到一个指定文件里面?
比如m文件中有fprintf,没有';'的行
默认是输到command window
我查到diary有类似的功能,感觉不完全是
谢谢 |
|
a**a 发帖数: 63 | 34 can you re-direct your output to a file? Or, before using fprintf, use fopen
to open a specific file. |
|
j**u 发帖数: 6059 | 35 ☆─────────────────────────────────────☆
qqhjz (力) 于 (Sat Oct 28 23:49:19 2006) 提到:
每次用fprintf写的文件都被放到/matlab/work下面,很不方便,不知道有没有办法另
存到指定的目录,谢谢!!!
☆─────────────────────────────────────☆
longtian (自由+回到地球) 于 (Sun Oct 29 00:12:36 2006) 提到:
fopen的时候把目录页全了不就行了?
☆─────────────────────────────────────☆
longhei (money money money) 于 (Sun Oct 29 11:23:21 2006) 提到:
换个工作目录呀
☆─────────────────────────────────────☆
qqhjz (力) 于 (Mon Oct 30 10:02:36 2006) 提到:
再请教一下
tt=strcat('x','y','.txt' |
|
j**u 发帖数: 6059 | 36 ☆─────────────────────────────────────☆
jzxu (自然) 于 (Mon Apr 16 17:27:31 2007) 提到:
matlab要输出一个数据文本文件给C程序使用,里面的数据都是整数。
如果简单的使用save -ascii,文件里面都是浮点数,如何用matlab
将一个整数矩阵写入一个文本文件?
☆─────────────────────────────────────☆
jzxu (自然) 于 (Mon Apr 16 17:30:22 2007) 提到:
一个可能的解答。
fid = fopen('datafile','w') ;
fprintf(fid, [repmat('%d ', 1, size(dataarray,2)), '\n'], dataarray) ;
fclose(fid) ;
☆─────────────────────────────────────☆
jzxu (自然) 于 (Mon Apr 16 17:31:35 2007) 提到:
用其他任何方法解答此问题者,皆有包子,长 |
|
L*******g 发帖数: 913 | 37 Mathematica里有函数f(x,y),请问如何把x, y, f(x,y)的值按列输出到一个数据文件
里。
最后需要用别的软件读此文件画2D mesh图。
最终格式最好是相当于C的
for(i=0; i
x=i*dx;
for(j=0; j
y=j*dy;
fprintf(fp, "%f\t%f\t%f\n", x,y,f(x,y));
}
}
在线等2小时,多谢。 |
|
M********g 发帖数: 183 | 38 【 以下文字转载自 Programming 讨论区 】
发信人: MorrisMeng (努力学习,天天向上。。。), 信区: Programming
标 题: MPI I/O 问题
发信站: BBS 未名空间站 (Thu Apr 23 10:52:39 2009), 转信
我是新手,现在用MPI做小程序,每算几千个循环之后要把一个矩阵写到文件里做后续
处理比如画图等等。
我现在的做法是矩阵的数据都传到一个process里,然后用fprintf写到文件里。
我看了看MPI I/O,好像用他写double的数据到文件只能用MPI自己读?
难道只能用sprintf写到字符串里再用MPI I/O并行写文件?
有没有什么好方法可以解决这么问题? |
|
p*******9 发帖数: 801 | 39 “fprintf(fid_tmp, '%s\n', tline); ”
现在我是用这个命令读成一个矩阵的形式,然后再做其他的矩阵操作,有什么办法限制
不读最后一个字符码? |
|
s*****c 发帖数: 753 | 40 fprintf? 读?
Have you tried fscanf with %f? How about csvread or dlmread?
If you really was reading it in as a string (assume it is stored in A) and
then parsing the string to get the value, can't you parse A(1:end-1)? |
|
p*******9 发帖数: 801 | 41 while ~feof(fid)
tline = fgetl(fid);
fprintf(fid_tmp, '%s\n', tline);
end
fclose(fid_tmp);
fclose(fid);
finalfile = csvread('temp.csv');
好像还是不工作 |
|
p*******9 发帖数: 801 | 42 while ~feof(fid)
tline = fgetl(fid);
fprintf(fid_tmp, '%s\n', tline);
end
fclose(fid_tmp);
fclose(fid);
finalfile = csvread('temp.csv');
好像还是不工作 |
|
s****1 发帖数: 1519 | 43 s = fread(fid, 'char');
s = char(s');
s = s(1:end-1);
fprintf(fid_temp, '%s',s);
finalfile = csvread('temp.csv');
应该可以了 fopen, fclose啥的你就自己写了 |
|
p*******9 发帖数: 801 | 44 “fprintf(fid_tmp, '%s\n', tline); ”
现在我是用这个命令读成一个矩阵的形式,然后再做其他的矩阵操作,有什么办法限制
不读最后一个字符码? |
|
s*****c 发帖数: 753 | 45 fprintf? 读?
Have you tried fscanf with %f? How about csvread or dlmread?
If you really was reading it in as a string (assume it is stored in A) and
then parsing the string to get the value, can't you parse A(1:end-1)? |
|
p*******9 发帖数: 801 | 46 while ~feof(fid)
tline = fgetl(fid);
fprintf(fid_tmp, '%s\n', tline);
end
fclose(fid_tmp);
fclose(fid);
finalfile = csvread('temp.csv');
好像还是不工作 |
|
p*******9 发帖数: 801 | 47 while ~feof(fid)
tline = fgetl(fid);
fprintf(fid_tmp, '%s\n', tline);
end
fclose(fid_tmp);
fclose(fid);
finalfile = csvread('temp.csv');
好像还是不工作 |
|
s****1 发帖数: 1519 | 48 s = fread(fid, 'char');
s = char(s');
s = s(1:end-1);
fprintf(fid_temp, '%s',s);
finalfile = csvread('temp.csv');
应该可以了 fopen, fclose啥的你就自己写了 |
|
c******k 发帖数: 1140 | 49 购买了一个光学仪器,是用马达控制其中的部件。然后马达链接6V电源,输出有个DB9
接头接计算机串口。现在要编个RS232小程序去控制这个马达,可以用labview or
matlab 编程序。但是还是没有头绪,比如程序框图是啥啊,仪器的manual有一些RS232
的命令,但是怎么用这些命令呢?
比如: G0:Stop the motor driver
M?: Return the minimum time dalay, in ps.
FH: Find home
SLEEP: Start sleep mode
。。。。。。
命令很多,怎么把这些融合到Matlab里呢?谢谢指导!
clear
s=serial('COM1');
fopen(s);
fprintf(s,'*IDN?');
DataOut=fscanf(s)
fclose(s);
delete(s)
clear s |
|
c*******o 发帖数: 62 | 50 这里面哪个命令是有返回值的?比如说返回encoder counter,firmware version,
Dataout=应该能返回什么的
或者能观察得到命令的作用的,比如驱动,停止之类的
还有马达说明书上要求是\n还是\r结尾的?
试试fprintf(s,'GO\r')
然后再加个pause(1)做响应时间
再读Dataout |
|