所以我正在尝试创建一个文件并将其保存到所需的目录中。
例如:user-input:
指南? BEGIN
select new.transactionid := CONCAT('T', YEAR(now()),
LPAD(COALESCE(MAX(SUBSTR(TRANSACTION_ID, 5, 5) + 1
), 1
), 5, 0)
from transaction t
where TRANSACTION_ID LIKE CONCAT(YEAR(now()), '%')
END;
名称? c:\user\sample\
这是我到目前为止所尝试的:
hello.txt
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
一些问题:
您必须使用strcat()
来连接字符串。
在打开它之前,您正在阅读out_file
。
fgets(str,sizeof str,out_file);
fgets(str2,sizeof str2,out_file);
一个简单的例子(没有完成错误检查):
char str[200], str2[200];
char fname[400];
FILE *out_file;
printf("\nEnter path: ");
scanf("%199s", str);
printf("\nEnter filename: ");
scanf("%199s", str2);
strcpy(fname, str);
strcat(fname, str2);
out_file = fopen(fname, "w");
或者,更短的方式:
char str[400],str2[200];
FILE * out_file;
printf("\nEnter path: ");
scanf("%199s", str);
printf("\nEnter filename: ");
scanf("%199s", str2);
strcat(str, str2);
out_file = fopen(str, "r");
答案 1 :(得分:1)
请参阅How to concatenate 2 strings in C?。
此外,您应该使用strcat
。
查看this教程。
这方面的一个例子是:
/* Example using strcat by TechOnTheNet.com */
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[])
{
/* Define a temporary variable */
char example[100];
/* Copy the first string into the variable */
strcpy(example, "TechOnTheNet.com ");
/* Concatenate the following two strings to the end of the first one */
strcat(example, "is over 10 ");
strcat(example, "years old.");
/* Display the concatenated strings */
printf("%s\n", example);
return 0;
}
在你的情况下,它将是:
char file_name[200 + 200];
file_name [0] = '\0' // To make sure that it's a valid string.
strcpy (file_name, str); // Concatenate `str` and `file_name`
strcat(file_name, str2); // Concatenate `str2` and `file_name`
out_file = fopen(file_name, "w"); // Open the file.
另外,感谢&#39; laerne&#39;指出一些错误。
答案 2 :(得分:0)
你不能在C中连接这样的字符串! *
您最好使用strcat
:
try {
$date = new DateTime('2016-12-12');
$date->modify('+1 dayBLA');
echo $date->format('Y-m-d');
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
*虽然您可以添加指针。在你的情况下,它没有做你期望的。 子>